книга (И.А. Волкова, А.В. Иванов, Л.Е. Карпов - Основы объектно-ориентированного программирования. Язык программирования С++)
Описание файла
Файл "книга" внутри архива находится в папке "И.А. Волкова, А.В. Иванов, Л.Е. Карпов - Основы объектно-ориентированного программирования. Язык программирования С++". PDF-файл из архива "И.А. Волкова, А.В. Иванов, Л.Е. Карпов - Основы объектно-ориентированного программирования. Язык программирования С++", который расположен в категории "". Всё это находится в предмете "практикум (прикладное программное обеспечение и системы программирования)" из 4 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст из PDF
Московский государственный университет им. М. В. ЛомоносоваФакультет вычислительной математики и кибернетикиИ. А. Волкова, А. В. Иванов, Л. Е. КарповОсновы объектно-ориентированногопрограммирования.Язык программирования С++.учебное пособие для студентов 2 курсаl%“*"=2011УДКББКПечатается по решению Редакционно-издательского совета факультетавычислительной математики и кибернетикиМГУ им. М. В. ЛомоносоваРецензенты:проф., д.ф.-м.н. И. В. Машечкиндоцент, к.ф.-м.н. А.
Н. ТерехинИ. А. Волкова, А. В. Иванов, Л. Е. КарповОсновы объектно-ориентированного программирования. Язык программирования С++. Учебное пособие для студентов 2 курса. — М.: Издательскийотдел факультета ВМК МГУ (лицензия ИД № 05899 от 24.09.2001), 2011 —112 с.ISBN-13 978-5-89407-439-9Настоящее учебное пособие является дополнением к ранее выпущеннымпособиям по курсу «Системы программирования»: И. А. Волкова,А. А. Вылиток, Т. В. Руденко «Формальные грамматики и языки. Элементытеории трансляции» и И. А.
Волкова, И. Г. Головин, Л. Е. Карпов «Системыпрограммирования». Пособие представляет собой конспект соответствующих лекций.Вучебномпособиикраткорассматриваетсяобъектно-ориентированный подход к программированию на примере языка программирования C++.Учебное пособие предназначено для студентов второго курса факультета ВМК МГУ им. М. В. Ломоносова, а также может быть рекомендованостудентам отделения второго высшего образования при изучении курса«Языки программирования», читаемого по аналогичной программе.ISBN-13978-5-89407-439-9© Издательский отдел факультетавычислительной математикии кибернетикиМГУ им. М. В. Ломоносова, 2011© И.
А. Волкова, А. В. Иванов,Л. Е. Карпов, 2011Материалы для студентов ВМиК http://cmcmsu.no-ip.info/ОглавлениеГлава 1. Объектно-ориентированное программирование (ООП) .. 51.1. Краткий обзор основных парадигм программирования1.2. Основные принципы ООП1.3. Абстрактные типы данных689Глава 2. Отличия C и C++ ................................................................
112.1.2.2.2.3.2.4.2.5.2.6.Работа с динамической памятьюОписания, значения параметров по умолчаниюТип «bool»СсылкиСтандартная библиотека С++, стандартный ввод-выводПространства имен, пространство имен «std». Операция «::»111213131516Глава 3. Классы и объекты С++....................................................... 193.1.3.2.3.3.3.4.3.5.3.6.Синтаксис описания классаУправление доступом к членам классаКлассы и структуры С++Манипуляции с состоянием объектаКласс как область видимостиОбъявление и определение методов класса.
Спецификатор«inline»3.7. Указатель «this»3.8. Указатель на член класса1920212223232425Глава 4. Конструкторы и деструкторы ........................................... 274.1. Конструктор умолчания4.2. Конструктор преобразования и конструкторы с двумя и болеепараметрами4.3. Конструктор копирования4.4. Спецификатор «explicit»4.5. Конструктор копирования и операция присваивания4.6. Автоматическая генерация конструкторов и деструкторов4.7. Список инициализации4.8. Порядок вызова конструкторов и деструкторов2929303333343436Глава 5.
Статические члены класса................................................. 40Глава 6. Константные члены класса. Модификатор «const» ........ 43Глава 7. Друзья классов.................................................................... 45Глава 8. Статический полиморфизм ............................................... 488.1.8.2.8.3.8.4.Перегрузка бинарных операцийПерегрузка унарных операцийПерегрузка функцийАлгоритм поиска оптимально отождествляемой функции дляодного параметра8.4.18.4.2Остальные стандартные целочисленные и вещественные преобразования ...................... 58Преобразование указателей ..................................................................................................... 59Преобразования пользователя....................................................................... 618.4.4.1.8.4.4.2.8.4.5Целочисленные расширения ...................................................................................................
58Расширения с плавающей точкой ........................................................................................... 58Отождествление с помощью стандартных преобразований ...................... 588.4.3.1.8.4.3.2.8.4.457Точное отождествление ................................................................................. 57Отождествление с помощью расширений ...................................................
588.4.2.1.8.4.2.2.8.4.3485255Конструктор преобразования .................................................................................................. 61Функция преобразования (операция преобразования)......................................................... 61Отождествление по «…» ............................................................................... 64Глава 9. Виды отношений между классами ................................... 669.1. Наследование67Оглавление9.2.
Агрегация67Глава 10. Одиночное наследование................................................. 6910.1.10.2.10.3.10.4.10.5.10.6.Правила наследованияПреобразования указателейПравила видимости при наследованииЗакрытое (private) наследованиеПерекрытие именНаследование и повторное использование кода697071747678Глава 11. Динамический полиморфизм, механизм виртуальныхфункций...................................................................................... 8311.1. Виртуальные деструкторы11.2.
Реализация виртуальных функций11.3. Абстрактные классы. Чистые виртуальные функции848688Глава 12. Средства обработки ошибок, исключения и обработкаисключений................................................................................ 8912.1. Правила выбора обработчика исключения12.2. Стандартные исключения12.3. Последовательность действий при возникновенииисключительной ситуации909292Глава 13. Множественное наследование, интерфейсы ................. 9413.1. Видимость при множественном наследовании13.2. Виртуальные базовые классы13.3. Интерфейсы949596Глава 14. Динамическая информация о типе (RTTI).....................
97Глава 15. Параметрический полиморфизм................................... 10315.1.15.2.15.3.15.4.Параметры шаблонаШаблоны функцийСпециализация шаблонной функцииАлгоритм поиска оптимально отождествляемой функции(с учетом шаблонов)15.5. Шаблонные классы15.6. Эквивалентность типов103104106107108110Глава 16. Стандартная Библиотека шаблонов STL ..................... 11216.1.16.2.16.3.16.4.16.5.16.6.16.7.16.8.КонтейнерыРаспределители памятиИтераторыАлгоритмыДостоинства и недостатки STL-подходаКонтейнер векторКонтейнер списокПример решения задачи с использованием контейнеров STL112113114117118119123125Глава 17. Литература ......................................................................
127Объектно-ориентированное программирование (ООП)Глава 1.Объектно-ориентированноепрограммирование (ООП)Объектно-ориентированная технология (парадигма) программированиянаиболее распространена и востребована в настоящее время. При объектно-ориентированном подходе к программированию программа представляетсобой совокупность взаимодействующих между собой данных — объектов.Функциональную возможность и структуру объектов задают классы — типыданных, определенные пользователем.Изучение ООП целесообразно начать на примере объектно-ориентированного языка программирования C++ ([9], [14]), как наиболеетеоретически выдержанного в этой части.
Другие языки, поддерживающиеидеи ООП, такие, как Object Pascal [4], Java [7], разрабатывались в первуюочередь с учетом удобства программирования задач в соответствующихпредметных областях.Язык C++, унаследовав язык C (стандарт С90 — см. [1]), был разработанего автором Б. Страуструпом [12] с наиболее возможной реализацией теоретических концепций ООП. Язык C++ вобрал в себя не только некоторыеконцепции языка С, а также и некоторых других языков. Например, концепция классов взята автором С++ из языка Simula [10], а концепция наследования — из языка Smalltalk.Следует отметить, что развитие языка C++, а также сопряженное с нимразвитие технологии программирования, в частности, развитие COM (Component Object Model) технологии [5] приводит к некоторому отступлению отстрогой теории ООП.