29) Конструкторы и деструкторы производных классов.
В C++ конструкторы и деструкторы базового класса не наследуются в производных классах. Однако производный класс может иметь конструктор и деструктор, поэтому C++ поддерживает определенные правила взаимодействия между этими компонентами базовых и производных классов, которые необходимо соблюдать при использовании механизма наследования. При объявлении объектов производного класса предусмотрен
автоматический вызов конструктора базового класса. Если конструктор базового класса имеет аргументы, то их значения должны быть переданы через дополнительные аргументы конструктора производного класса. При этом соблюдается строгий порядок конструирования объектов базового и производного классов: сначала создается объект базового класса и, возможно, его компоненты в порядке их объявления, а затем - объект производного класса.
Деструкторы, если они необходимы в программе, будут вызываться в порядке, обратном порядку вызова конструкторов. Если деструктор не определен, то он создается по умолчанию и при необходимости освобождает память, отведенную под динамический объект. Однако при использовании динамических полей, автоматического освобождения памяти не происходит, поэтому следует предусмотреть деструктор, который освобождал бы память, выделенную под динамические поля объекта используемого класса.
- 5)Указатели и ссылки.
- 12) Параметры структурных типов.
- 13) Классы памяти переменных.
- 14) Параметры-функции.
- 15) Правила, определяющие видимость переменных в функциях.
- 16) Пространства имен.
- Int Pages;
- Int getPages(); // тело будет описано в book.Сpp
- 18) Перегрузка функций.
- 19) Функции с параметрами по умолчанию.
- 20) Текстовые файлы. Отличие от Delphi Pascal.
- Int fscanf(file *stream,const char *format[,adress,...]);
- Int fprintf(file *stream,const char *format[,argument,...]);
- 21) Двоичные файлы. Отличие от Delphi Pascal.
- 22) Определение класса, компоненты класса. Ограничение доступа.
- 23) Инициализация полей при отсутствии конструктора.
- 24) Конструкторы. Инициализация полей при наличии конструктора.
- 25) Деструкторы.
- 27) Простое и множественное наследование классов.
- 28) Наследование. Ограничение доступа при наследовании.
- 29) Конструкторы и деструкторы производных классов.
- 30) Композиция.
- 31)Наполнение
- 32) Полиморфное наследование. Простой полиморфизм.
- 33) Полиморфное наследование. Сложный полиморфизм.
- 34) Статические компоненты классов.
- 35) Особенности работы с динамическими объектами.
- 36) Объекты с динамическими полями. Копирующий конструктор.
- Void Print(tPoint r) {…}
- 37) Дружественные функции, методы и классы.
- 38) Переопределение операций.
- 39) Шаблоны классов.
- 40) Шаблоны функций.
- 46) Сигналы, слоты и события Qt.