Объектноориентированное программирование
Скачать 1.73 Mb.
|
БИБЛИОГРАФИЧЕСКИЙ СПИСОК 1. Буч, Г. Объектно-ориентированный анализ и проектирование с при- мерами приложений, 3-е изд. / Г. Буч и др. // Пер. с англ. – М.: «И.Д. Виль- ямс», 2010. – 720 с. 2. Павловская, Т.А. C/C++. Программирование на языке высокого уровня / Т.А. Павловская // СПб.: Питер, 2009. – 461 с. 3. Подбельский, В.В. Язык Си++ : Учеб. пособие для вузов по направле- ниям «Приклад. математика» и «Вычисл. машины, комплексы, системы и сети» / В.В. Подбельский // М.: Финансы и статистика , 2001 г. – 559 с. 4. Страуструп, Б. Язык программирования С++. Специальное издание. Пер. с англ. / Б. Страуструп // СПб., М.: «Невский диалект» – «Издательство БИНОМ», 2008 г. – 1104 с. 5. Майерс С. Эффективное использование C++ / С. Майерс // СПб.: Пи- тер, 2006 г. – 240 с. 6. Майерс С. Эффективное использование С++. 35 новых способов улуч- шить стиль программирования /С. Майерс // СПб.: Питер, 2006. –224 с. 165 ОГЛАВЛЕНИЕ 1. Введение ............................................................................................... 3 1.1 Сложность разработки программного обеспечения .................. 3 1.2 Декомпозиция ................................................................................ 3 1.3 Краткая история языков программирования .............................. 4 1.4 Объектно-ориентированное программирование ....................... 7 2. Объектно-ориентированное программирование. Язык С++ ........... 9 2.1 Инкапсуляция ................................................................................ 9 2.2 Наследование ............................................................................... 10 2.3 Полиморфизм .............................................................................. 11 2.4 История появления C++ ............................................................. 11 2.5 Нововведения и отличия C++ от C ............................................ 13 2.6 Ключевое слово static .................................................................. 15 2.7 Ключевое слово const .................................................................. 17 3. Классы в ООП .................................................................................... 23 3.1 Что такое класс? .......................................................................... 23 3.2 Спецификаторы public, private, protected .................................. 25 3.3 Глобальные и локальные классы ............................................... 26 3.4 Примеры классов ......................................................................... 26 3.5 Inline функции ............................................................................. 29 3.6 Указатель this ............................................................................... 29 4. Конструкторы классов ...................................................................... 31 4.1 Конструкторы и их свойства ...................................................... 31 4.2 Конструкторы по умолчанию .................................................... 31 4.3 Конструктор копирования .......................................................... 33 4.4 Статические элементы класса .................................................... 34 4.5 Дружественные функции и классы ........................................... 35 4.6 Деструкторы ................................................................................ 37 5. Перегрузка операций в ООП ............................................................ 38 5.1 Перегрузка операций .................................................................. 38 166 5.2 Перегрузка унарных операций .................................................. 38 5.3 Перегрузка бинарных операций ................................................ 39 5.4 Перегрузка операции присваивания.......................................... 40 5.5 Перегрузка операции приведения типа .................................... 41 5.6 Особенности работы операторов new и delete ......................... 41 5.7 Перегрузка операторов new и delete для отдельных классов . 41 5.8 Переопределение глобальных операторов new и delete .......... 42 6. Наследование в ООП ......................................................................... 44 6.1 Виды наследования ..................................................................... 44 6.2 Простое наследование ................................................................ 45 6.3 Виртуальные методы .................................................................. 49 6.4 Виртуальный деструктор ............................................................ 52 6.5 Абстрактные классы ................................................................... 54 7. Множественное наследование в ООП ............................................. 55 7.1 Альтернатива наследованию ...................................................... 55 7.2 Отличия структур и объединений от классов .......................... 56 7.3 Ромбовидное наследование ........................................................ 56 8. Шаблоны функций ............................................................................ 60 8.1 Использование шаблонов функций ........................................... 60 8.2 Создание простого шаблона функции ...................................... 61 8.3 Использование шаблонов функций ........................................... 62 8.4 Шаблоны, использующие несколько типов ............................. 63 8.5 Шаблоны и несколько типов ...................................................... 64 9. Шаблоны классов .............................................................................. 65 9.1 Создание шаблонов классов....................................................... 65 9.2 Синтаксис описания шаблона .................................................... 68 9.3 Использование шаблонов классов ............................................. 72 9.4 Явная специализация шаблонов ................................................ 73 9.5 Достоинства и недостатки шаблонов ........................................ 74 10. Обработка исключений ..................................................................... 75 167 10.1 Перехват исключений ................................................................. 81 10.2 Объекты-исключения .................................................................. 82 10.3 Раскрутка стека ............................................................................ 85 10.4 Повторное возбуждение исключений ....................................... 87 10.5 Обработка исключений в С ........................................................ 88 10.6 Исключительные ситуации в конструкторах и деструкторах 91 11. Идентификация типов во время выполнения ................................. 94 11.1 Оператор dynamic_cast ............................................................... 94 11.2 Оператор typeid.......................................................................... 100 11.3 Иерархия классов исключений ................................................ 102 12. Паттерны проектирования .............................................................. 106 12.1 Порождающие паттерны проектирования .............................. 106 12.2 Структурные паттерны проектирования ................................ 119 12.3 Поведенческие паттерны проектирования ............................. 134 13. Использование STL в C++ .............................................................. 150 13.1 Основные компоненты STL ..................................................... 150 13.2 STL-строки ................................................................................. 151 13.3 Векторы ...................................................................................... 154 13.4 Итераторы .................................................................................. 156 13.5 Алгоритмы ................................................................................. 158 Библиографический список ...................................................................... 164 |