И.А. Волкова, А.В. Иванов, Л.Е. Карпов - Основы объектно-ориентированного программирования. Язык программирования С++ (ЧБ) (1114895)
Текст из файла
Московский государственный университет им. М.В.ЛомоносоваФакультет Вычислительной Математики и КибернетикиИ.А.Волкова, А.В.Иванов, Л.Е.КарповОсновы объектно-ориентированного программирования.Язык программирования С++.Учебное пособие для студентов 2 курсаМосква________________________________________________________________2011УДКББКПечатается по решению Редакционно-издательского советафакультета вычислительной математики и кибернетикиМГУ им. М.
В. ЛомоносоваРецензенты:проф., д.ф.-м.н. Машечкин И. В.доцент, к.ф.-м.н. Терехин А. Н.Волкова И. А., Иванов А. В., Карпов Л. Е.Основы объектно-ориентированного программирования. Языкпрограммирования С++. Учебное пособие для студентов 2 курса. –М.: Издательский отдел факультета ВМК МГУ (лицензия ИД №05899 от 24.09.2001), 2011 – 112 с.ISBN-13978-5-89407-439-9Настоящее учебное пособие является дополнением к ранее выпущеннымпособиям по курсу «Системы программирования»: Волкова И.А., Вылиток А.А.,Руденко Т.В. «Формальные грамматики и языки.
Элементы теории трансляции» иВолкова И.А., Головин И.Г., Карпов Л.Е. «Системы программирования». Пособиепредставляет собой конспект соответствующих лекций.В учебном пособии кратко рассматривается объектно-ориентированныйподход к программированию на примере языка программирования C++.Учебное пособие предназначено для студентов второго курса факультетаВМК МГУ им.
М.В.Ломоносова, а также может быть рекомендовано студентамотделения второго высшего образования при изучении курса «Языки программирования», читаемого по аналогичной программе.УДКББКISBN-13978-5-89407-439-9© Издательский отдел факультетавычислительной математики и кибернетикиМГУ им. М. В. Ломоносова, 2011© Волкова И.А., Иванов А.В., Карпов Л.Е.,2011Оглавление1.Объектно-ориентированное программирование (ООП)....................................... 51.1.
Краткий обзор основных парадигм программирования........................... 51.2. Основные принципы ООП........................................................................... 71.3. Абстрактные типы данных .......................................................................... 92. Отличия С и С++ ......................................................................................................
92.1. Работа с динамической памятью ................................................................ 92.2. Описания, значения параметров по умолчанию ..................................... 102.3. Тип bool .......................................................................................................
102.4. Ссылки......................................................................................................... 112.5. Стандартная библиотека С++, стандартный ввод-вывод ....................... 122.6. Пространства имен, пространство имен std. Операция '::'................ 143. Классы и объекты С++........................................................................................... 163.1. Синтаксис описания класса ....................................................................... 163.2. Управление доступом к членам класса ....................................................
173.3. Классы и структуры С++ ........................................................................... 183.4. Манипуляции с состоянием объекта ........................................................ 193.5. Класс как область видимости.................................................................... 193.6. Объявление и определение методов класса. Спецификатор inline........ 203.7. Указатель this .......................................................................................... 213.8. Указатель на член класса........................................................................... 214.
Конструкторы и деструкторы ............................................................................... 234.1. Конструктор умолчания............................................................................. 254.2. Конструктор преобразования и конструкторы с двумя и болеепараметрами ........................................................................................................... 254.3.
Конструктор копирования ......................................................................... 264.4. Спецификатор explicit ................................................................................ 294.5. Конструктор копирования и операция присваивания ............................ 294.6. Автоматическая генерация конструкторов и деструкторов................... 304.7. Список инициализации .............................................................................. 304.8.
Порядок вызова конструкторов и деструкторов ..................................... 325. Статические члены класса..................................................................................... 356. Константные члены класса. Модификатор const ................................................ 377. Друзья классов ........................................................................................................
398. Статический полиморфизм.................................................................................... 418.1. Перегрузка бинарных операций................................................................ 418.2. Перегрузка унарных операций.................................................................. 458.3. Перегрузка функций................................................................................... 478.4. Алгоритм поиска оптимально отождествляемой функции для одногопараметра ................................................................................................................ 499. Виды отношений между классами........................................................................
5610. Одиночное наследование....................................................................................... 5910.1. Правила наследования ............................................................................... 5910.2. Преобразования указателей....................................................................... 6010.3.
Правила видимости при наследовании. ................................................... 6110.4. Закрытое (private) наследование ............................................................... 6410.5. Перекрытие имен........................................................................................ 6610.6. Наследование и повторное использование кода ..................................... 6811. Динамический полиморфизм, механизм виртуальных функций ...................... 7211.1.
Виртуальные деструкторы......................................................................... 7312.13.14.15.16.17.11.2. Реализация виртуальных функций ........................................................... 7511.3. Абстрактные классы. Чистые виртуальные функции............................. 77Средства обработки ошибок, исключения и обработка исключений ...............
7712.1. Правила выбора обработчика исключения .............................................. 7812.2. Стандартные исключения.......................................................................... 8012.3. Последовательность действий при возникновении исключительнойситуации.................................................................................................................. 80Множественное наследование, интерфейсы........................................................ 8113.1.
Видимость при множественном наследовании. ...................................... 8113.2. Виртуальные базовые классы.................................................................... 8213.3. Интерфейсы.................................................................................................
83Динамическая информация о типе (RTTI)........................................................... 84Параметрический полиморфизм ........................................................................... 8915.1. Параметры шаблона ................................................................................... 8915.2. Шаблоны функций. .................................................................................... 9115.3. Специализация шаблонной функции ....................................................... 9215.4.
Алгоритм поиска оптимально отождествляемой функции (с учетомшаблонов) ............................................................................................................... 9315.5. Шаблонные классы .................................................................................... 9415.6. Эквивалентность типов..............................................................................
96Стандартная Библиотека шаблонов STL.............................................................. 9716.1. Контейнеры ................................................................................................. 9716.2. Распределители памяти..............................................................................
9816.3. Итераторы ................................................................................................... 9916.4. Алгоритмы ................................................................................................ 10216.5. Достоинства и недостатки STL-подхода................................................ 10316.6. Контейнер вектор ..................................................................................... 10416.7. Контейнер список.....................................................................................
10816.8. Пример решения задачи с использованием контейнеров STL ............ 110Литература ............................................................................................................ 1121.Объектно-ориентированное программирование (ООП)Объектно-ориентированная технология (парадигма) программированиянаиболее распространена и востребована в настоящее время.
При объектно-ориентированном подходе к программированию программа представляет собой совокупность взаимодействующих между собой данных – объектов. Функциональную возможность и структуру объектов задают классы – типы данных,определенные пользователем.ИзучениеООПцелесообразноначатьнапримереобъектно-ориентированнного языка программирования C++ ([9], [14]), как наиболеетеоретически выдержанного в этой части. Другие языки, поддерживающие идеиООП, такие, как Object Pascal [4], Java [7], разрабатывались в первую очередь сучетом удобства программирования задач в соответствующих предметных областях.Язык C++, унаследовав язык C (стандарт С90 – см. [1]), был разработан егоавтором Б. Страуструпом [12] с наиболее возможной реализацией теоретическихконцепций ООП.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.