В пособии представлен краткий лекционный курс, освещающий основы объектно--ориентированноrо проrраммирования на примере языка Си++.
В целях экономии учебноrо времени рассматривается только ядро языка. Стандартная библиотека Си++
оставлена читателю для самостоятельноrо изучения; в примерах используются возможности стандартной библиотеки языка Си.
Курс построен в предположении, что язык Си читателю уже известен; это позволяет излarать материал путём плавноrо перехода от Си к Си++ с постепенным введением новых понятий.
Для студентов проrраммистских специальностей, преподавателей и всех желающих освоить объектно-ориентированное проrраммирование.
Author(s): Столяров А.В.
Edition: 3
Publisher: Макс Пресс
Year: 2012
Language: Russian
Pages: 129
City: Москва
Предuсловuе для преподавателей 3
Предuсловuе для студентов 5
1. Введение 8
1.1. Что такое ООП 8
1.2. Язык Си++ и ero совместимость с Си 10
2. Абстрактные типы данных и инкапсуляція 12
2.1. Методы, объекты и защита . . . 12
2.1.1. Функциичлены (методы) ...... 12
2.1.2. Указатель this ........... 13
2.1.3. Защита. Понятие конструктора 14
2.1.4. Зачем нужна защита . . . . . . . . . 17
2.1.5. Классы . . . . . . . . . . . . . . . . 20
2.2. Переопределение символов стандартных операций 21
2.3. Переrрузка имён функций ............ 23
2.4. Конструктор умолчания. Массивы объектов . . . . 24
2.5. Конструкторы преобразования . . . . 25
2.6. Ссылки ......... 27
2.7. Модификатор const . . . . . 29
2.8. Константные методы . . . . 32
2.9. Деструкторы ...... . . . . . . . . . . . . . 34
2.10. Операции работы с динамической памятью . . . . 35
2.11. Конструктор копирования . . . . . . . . . . 36
2.12. Временные и анонимные объекты ........ .. . . 39
2.13. Значения параметров по умолчанию . . . . . . . . . 41
2.13.1. Параметры функций со значениями по умолчанию 41
2.13.2. Ещё раз о видах конструкторов . . . . . . . . . . . . 42
2.14. Неявные конструкторы ....................... 43
2.15. Описание тела метода вне класса. Раскрытие области видимости 44
2.16. Инициализация членов класса в конструкторе 46
2.17. Описание символов операций вне класса ........ 48
2.18. Дружественные функции и классы . . . . . . . . 49
2.19. Особенности переопределения некоторых операций ....... 51
2.19.1. Переопределение операций присваивания . 51
2.19.2. Переопределение операции индексирования 53
2.19.3. Переопределение операций ++ и --. . . . . 55
2.19.4. Переопределение операции -> . . . . . . . . . . . . . .. 57
2.19.5. Переопределение операции вызова функции 59
2.19.6. Переопределение операции преобразования типа 60
2.20. Пример: разреженный массив . . . . . . . . . . . . . . . . . 62
2.21. Статические поля и методы . . . . . . . . . . . . . . . . . . 67
2.21.1. Статические поля и особенности их определения 67
2.21.2. Статические методы .................. 69
3. Обработка исключительных ситуаций 71
3.1. Ошибочные ситуации и проблемы их обработки 71
3.2. Общая идея механизма исключений 73
3.3. Возбуждение исключений . . . . 75
3.4. Обработка исключений ........ 76
3.5. Обработчики с мноrоточием ..... 78
3.6. Объект класса в роли исключения ..... 80
3.7. Автоматическая очистка ....... . . . . 83
3.8. Преобразования типов в обработчиках исключений . . . . 83
4. Наследование и полиморфизм 85
4.1. Иерархические предметные области . . . . . . . . . . . . . . 85
4.2. Наследование структур данных и полиморфизм адресов . . . .. 86
4.3. Наследование и методы; конструкторы и деструкторы . . . . .. 88
4.4. Наследование и защита ..................... 90
4.5. Виртуальные функции ........................ 91
4.6. Чисто виртуальные функции. Абстрактные классы . . . . . . .. 96
4.7. Наследование ради частноrо случая конструирования ...... 99
4.8. Виртуальный деструктор ....................... 101
4.9. Ещё о полиморфизме ......................... 103
4.10. Проблема одинаковых имён при наследовании. Автоматическое сокрытие имён 104
4.11. Теоретико-множественное описание наследования ........ 106
4.12. Операции приведения типа .................. 107
4.13. Ещё о преобразовании типов в обработчиках исключений 110
5. Шаблоны 112
5.1. Шаблоны функций . . . . 113
5.2. Шаблоны классов .... . . . . 115
5.3. Специализация шаблонов . . . . . . . . 117
5.4. Константные выражения в роли параметров шаблона 120
Что дальше (вместо nослесловuя) . . . . . . . . . . . . . . . . . 125