CITB201 Обектно ориентирано програмиране (С++)
Анотация:
Обектно-ориентираните езици за програмиране са основно средство за изграждане на големи и сложни софтуерни проекти. Понятието за клас се въвежда чрез идеята за дефиниран от програмиста тип, капсулиращ данни и функции. Наследяването се разглежда като контролирано средство за разширяване на съществуващи класове. Полиморфизмът се изяснява чрез примери за обработка на колекции от разнотипни обекти. Представени са и характерни особености на езика С++: функции и класове-шаблони, стандартни библиотеки и др.
http://nikolay.kirov.be/2014/CITB201/index.html
Преподавател(и):
доц. Николай Киров д-р
Описание на курса:
Компетенции:
Успешно завършилите курса студенти:
1) знаят:
Основни понятия от езика С++: класове, спецификатори за достъп, конструктори и декструктори, предефиниране на функции и операции, наследяване, полиморфизъм, обработка на изключения, шаблони.
2) могат:
Да пишат прости програми на езика за програмиране С++, използвайки среда за програмиране.
Предварителни изисквания:
Курсове по увод в езиците С и С++
Форми на провеждане:
Редовен
Учебни форми:
Лекция
Език, на който се води курса:
Български
Теми, които се разглеждат в курса:
http://nikolay.kirov.be/2014/CITB201/index.html
1. Дефинирани от потребителя типове.Структура. Променливи от тип “структура” – присвояване и инициализация, достъп до компонентите, използване като параметри. Достъп до функции през указатели. Капсулация на данни и функции.
2. Дефинирани от потребителя типове. Капсулиране, спецификатори за достъп. Дефиниране и използване на клас. Инициализация, конструктори. Съществуване на обектите, деструктори. Обекти – присвояване, използване като параметри. Предефиниране на конструктори.
3. Статични членове на клас. Копиращ конструктор. Предефиниране на операции. Копиращо присвояване. Предефиниране на операции като глобални функции.
4. Използване на класове. Агрегиране и наследяване. Техники за ограничаване на използването на клас. Наследяване. Достъп до членовете на базовия и наследяващия клас. Припокриване на функции в наследяващия клас.
5. Използване на член-функции на производни класове. Скриване член-функции на базовия клас. Преобразуване нагоре и надолу (upcast и downcast). Виртуални функции. Полиморфизъм.
6. Полиморфизъм. Чисто виртуални функции и абстрактни класове. Виртуални деструктори. Множествено наследяване. Изключения и обработка на изключения. Собствени класове за изключения.
7. Типът като параметър. Функции-шаблони и класове-шаблони. Стандарнти библиотеки от шаблони. Символни низове в С++. Вектори.
Литература по темите:
[1] Кай Хорстман, Принципи на програмирането със С++, ИК Софтех, София, 2000, 2003 [translation from second edition].
[2] Николай Киров, Сборник от учебни материали по ВЪВЕДЕНИЕ В ПРОГРАМИРАНЕТО, Деметра, София, 2003. [online]
[3] Николай Киров, Сборник от учебни материали по ПРОГРАМИРАНЕ И СТРУКТУРИ ОТ ДАННИ, Деметра, София, 2004. [online]
[4] Магдалина Тодорова, Програмиране на С++. Част първа, Сиела, София, 2010. [book.store.bg]
[5] Магдалина Тодорова, Програмиране на С++ Част втора, Сиела, София, 2010. [book.store.bg]
[6] Магдалина Тодорова, Обектно-ориентирано програмиране на базата на езика С++, Сиела, София, 2011.
[7] Cay Horstmann, Computing Concepts with C++ Essentials, Third Edition, John Wiley & Sons, 2003.
[8] Cay Horstmann, C++ For Everyone, 2nd Edition, Wiley, 2011.
Средства за оценяване:
http://nikolay.kirov.be/2014/CITB201/index.html
CITB201 Дата
Първи тест 28.03
Втори тест 9.05
Трети тест 6.06
CITB202
Първо домашно
Първо контролно
Второ домашно
Второ контролно
Трето домашно
Трето контролно