- •Лабораторная работа 1
- •Теоретические сведения
- •Ход работы
- •Задание
- •Контрольные вопросы
- •Контрольные вопросы
- •Література
- •Лабораторная работа 2
- •Теоретические сведения
- •Ход работы
- •Література
- •Лабораторная работа 3
- •Теоретические сведения
- •Ход работы
- •Контрольные вопросы
- •Література
- •Лабораторная работа 4
- •Теоретические сведения
- •Ход работы
- •Контрольные вопросы
- •Література
- •Лабораторная работа 5
- •Теоретические сведения
- •Основные библиотечные математические функции c
- •Основные стандартные функции и макросы c (из библиотеки stdlib.H)
- •Основные библиотечные функции c для работы с символами
- •Основные библиотечные функции c для работы с символьными массивами
- •Ход работы
- •Контрольные вопросы
- •Література
- •Лабораторная работа 6
- •Теоретические сведения
- •Ход работы
- •Контрольные вопросы
- •Література
- •Лабораторная работа 7
- •Теоретические сведения
- •Ход работы
- •Контрольные вопросы
- •Література
- •Лабораторная работа 8
- •Теоретические сведения
- •Ход работы
- •Контрольные вопросы
- •Література
- •Лабораторная работа 9
- •Теоретические сведения
- •Ход работы
- •Контрольные вопросы
- •Література
- •Лабораторная работа 10
- •Теоретические сведения
- •Ход работы
- •Контрольные вопросы
- •Література
- •Лабораторная работа 11
- •Теоретические сведения
- •Ход работы
- •Контрольные вопросы
- •Література
- •Лабораторная работа 12
- •Теоретические сведения
- •Ход работы
- •Контрольные вопросы
- •Література
- •Лабораторная работа 13
- •Теоретические сведения
- •Ход работы
- •Контрольные вопросы
- •Література
- •Лабораторная работа 14
- •Теоретические сведения
- •Ход работы
- •Контрольные вопросы
- •Література
- •Лабораторная работа 15
- •Теоретические сведения
- •Ход работы
- •Контрольные вопросы
- •Література
- •Лабораторная работа 16
- •Теоретические сведения
- •Ход работы
- •Контрольные вопросы
- •Література
Контрольные вопросы
Что такое наследование?
Какие классы называются базовыми, а какие производными?
Как объявить производный класс?
Для чего в базовом классе применяется ключевое слово protected?
Как работают конструкторы и деструкторы при создании производных объектов?
Как выполнить инициализацию базового класса при создании производного объекта?
Передаются ли по наследству производные члены-данные и функции через поколения?
Что такое перекрывание функций?
Для чего выполняется перекрывание функций в производных классах?
Как проявляется скрытие методов базового класса, при перекрывании в производном?
Как выполнить скрытый метод базового класса?
Можно ли в указатель на базовый класс занести указатель производного объекта?
В чем состоит суть полиморфизма функций?
Как объявить виртуальную функцию?
Как работают виртуальные функции?
Что такое v-таблица?
Если в базовом классе функция виртуальная, а в производном она перекрыта как не виртуальная, то будет ли она виртуальной при перекрывании в следующем поколении?
Что такое усечение данных при передаче по значению?
Для чего деструктор объявляют виртуальным?
Есть ли виртуальные конструкторы?
Для чего в базовом классе создают метод клонирования?
Можно ли сделать все функции базового класса виртуальными?
Література
Джесс Либерти. Освой самостоятельно С++. 3 и-е. М.: Вильямс. – 2000.
Г. Шилдт. Полный справочник по С++. 4 и-е. – М.: Вильямс. – 2003.
Т.А. Павловская. С/С++. Программирование на языке высокого уровня. ПИТЕР-2002
С.В. Глушаков. Практикум по С++. ФОЛИО – 2006
Х. Дейтел, П. Дейтел. Как программировать на С++.
Ю.Л. Кетков. Введение в языки программирования C и C++ http://www.intuit.ru/department/pl/ccpp/
А.Л. Фридман. Язык программирования C++ http://www.intuit.ru/department/pl/cpp/
Лабораторная работа 13
Тема: Множественное наследование. Полиморфизм.
Цель:
Теоретические сведения
См. лекция №13
Ход работы
Напишите объявление класса JetPlane, который наследуется от Rocket и AirPlane?
Напишите объявление для B747, который является производным от класса JetPlane?
Напишите программу, в которой классы Car и Bus будут производными от класса Transport, аMicroBus– производным от Car и Bus. СделайтеTransportабстрактным типом данных с двумя чисто виртуальными функциями. Классы Car и Bus не должны быть ADT. Проверьте программу, путем создания объектов разных типов.
Модифицируйте программу п.3 так, чтобы Car был ADT, и выведите из Car классы SportsCar, Wagon, Coupe. Реализуйте в классах простейшие функции.
Напишите программу обработки различных средств транспорта cиспользование массива указателей типаTransport. При обработке используйте как виртуальные методы, так и средстваRTTI.
Контрольные вопросы
Почему возникает проблема «просачивания наверх»?
Объясните термин RTTI.
Всегда ли возможно приведения типа объекта по иерархии вниз?
Как реализовать поддержку RTTIбез использования средств компилятора?
Объясните как работает оператор С++ typeid иRTTIметодname().
Что такое множественное наследование?
Из каких частей состоит объект при множественном наследовании?
Как работают конструкторы и деструкторы при множественном наследовании?
В каких случаях необходимо выполнять снятие неоднозначности?
Какие особенности имеют объекты, имеющие общий базовый класс?
Что такое виртуальное наследование?
Какие проблемы связаны с применением множественного наследования?
Что такое миксины и для чего они применяются?
Для чего используются абстрактные типы данных? Их особенность?
Что такое полностью виртуальная функция?
Как создать абстрактный класс?
Обязательно ли перекрывать чисто виртуальную функцию в производном классе?
Можно ли создавать объекты абстрактного типа?
Можно ли реализовать чисто виртуальную функцию в базовом классе?
Для чего нужны абстрактные типы данных?
