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

Първо домашно

Първо контролно

Второ домашно

Второ контролно

Трето домашно

Трето контролно