Обектно ориентирано програмиране: C++

Конспект

1. Въведение в С++. Паскал и С++: основни прилики и разлики. Коментари. Структура на програмата на С++. Присвояване на стойности на променливи. Извеждане на екран.
2. Числени данни. Характеристики на променливите. Имена на променливи. Числени типове и дефиниране на променливи. Цели константи, дълги константи, константи без знак и константи с плаваща запетая. Оператор за присвояване. Именовани константи.
3. Символи, низове и масиви от символи. Символни константи и променливи. Константи-низове. Математически операции със символите в С++. Масиви от символи и низове.
4. Директиви на препроцесора: #include, #define, #ifndef, #endif.
5. Математически операции и приоритети. Основни математически операции. Ред на изпълнение на операциите (приоритет). Оператори за присвоявяне - многократно присвояване и съставни присвоявания. Смесване на данни от различни типове в изрази.
6. Операции за отношение, логически операции и условен оператор. Операции за отношение. Логически операции - използване, ефективност и приоритет. Оператор if. Използване на изрази за условия. Оператор else.
7. Допълнителни и поразредни операции в С++. Условна операция. Операции за увеличавани и намаляване с 1. Операция sizeof. Операция запетая. Поразредни операции, съставни поразредни операции.
8. Оператори за цикъл. Цикли с while и do while. Цикли с for. Оператори break и continue.
9. Управление с оператор switch.
10. Функции и обхват на променливите. Използване на функции в С++. Глобални и локални променливи. Автоматични и статични променливи. Обхват (видимост) и живот на променливите. Формални и фактически параметри на функция.
11. Функции: предаване на параметри и връщане на стойности. Предаване на параметри по стойност (чрез копиране). Предаване на параметри по адрес (чрез псевдоним). Връщане на стойности от функциите. Аргументи по подразбиране. Предефиниране на функция.
12. Функции за вход-изход и стандартни функции. Потоци и символен вход и изход: cin и cout. Стандартни устройства и пренасочване на входа и изхода от MS-DOS. Функции за въвеждане и извеждани на символи put и get и техни варианти. Функции за обработване на символи: isalpha, isupper, toupper и др. Функции за работа с низове: strcpy, strcat, strlen, atoi и др. Числени функции.
13. Масиви и указатели. Дефиниране и инициализация на масиви. Друг метод за обръщане към масиви: името на масива като адрес в паметта. Многомерни масиви.
14. Указатели. Деклариране на указатели. Операции за определяне на адрес и за получаване на "съдържанието" на указател. Масиви от указатели. Имена на масиви като указатели. Указатели и масиви. Адресна аритметика. Масиви от низове.
15. Структури. Дефиниране на структури. Инициализация на данните в стуктури. Вложени структури. Масиви от структури. Масиви като полета на структури.
16. Файлове. Отваряне и затваряне на файл: open и close. Записване във файл и четене от файл. Файлове с произволен достъп: seekg.
17. Класове и абстрактни данни. Дефиниция на структура Time. Достъп до членовете (полетата) на структура. Дефиниция на клас абстрактни данни Time. Достъп до членовете на класа. Отделяне в различни файлове на дефинициите на класа (header) от дефинициите на функциите на класа.
18. Функции като членове на клас. Инициализация на обекти от тип клас - конструктор. Използване на аргументи по подразбиране с конструкторите. Използване на деструкторите. Кога се изпълняват конструкторите и деструкторите. Get и set функции.
19. Копиране, константи и композиция. Оператор за присвояване (почленно копиране). Обекти от тип клас като параметри на функции. Обекти константи и константи членове на тип клас - функции и данни. Композиция: класове като членове на други класове.
20. Friend and this. Приятелски функции и приятелски класове. Използване на указател this.
21. Динамична памет и статични членове. Динамично запазване на памет с операторите new и delete. Статични членове на клас.
22. Предефиниране на операции. Въведение, основни понятия. Ограничения при предефинирането на операции. Функции за предефиниране на операции: членове на класа или приятелски функции. Предефиниране на потоковите операции вмъкване и извличане.
23.Клас Array. Предефиниране на унарни и бинарни операции.
24. Наследяване на класове. Базисни класове и производни класове. Защитени (protected) членове на клас. Прехвърляне на указатели от базисния клас към производния клас.
25. Наследяване на класове II. Предефиниране на членове от базисния клас в производния клас. Публични (public), защитени (protected) и частни (private) базисни класове. Директни и индиректни базисни класове. Използване на конструктури и деструктури в производни класове.
26. Виртуални функции и полиморфизъм. Виртуални функции. Абстрактни базови класове и конкретни класове. Полиморфизъм. Пример с Payroll System.
27. Виртуални функции и полиморфизъм II. Нови класове, динамично създаване на производни класове. Виртуални деструктури. Клас Shape и производни класове.

20.12.1999 г.