Введение в язык C++: учебное пособие

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

В пособии представлен краткий лекционный курс, освещающий основы объектно--ориентированно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