Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
40
Добавлен:
27.02.2014
Размер:
122.37 Кб
Скачать

Синтаксис

Имя конструктора должно совпадать с именем класса. Допускается использовать несколько конструкторов с одинаковым именем, но различными параметрами

class ClassWithConstructor {

private:

AnotherClass object;

public:

/* Инициализация внутреннего объекта с помощью конструктора */

ClassWithConstructor(float parameter): object(parameter) {}/* вызов метода AnotherClass(float); */

};

Параметры для конструктора базового класса задаются в определении конструктора производного класса. В этом смысле базовый класс выступает как класс, являющийся членом производного класса:

manager::manager(char* n, int l, int d)

: employee(n,d), level(l), group(0)

{

}

Конструктор базового класса employee::employee() может иметь такое определение:

employee::employee(char* n, int d)

: name(n), department(d)

{

next = list;

list = this;

}

Здесь list должен быть описан как статический член employee. Объекты классов создаются снизу вверх: вначале базовые, затем члены и, наконец, сами производные классы. Уничтожаются они в обратном порядке: сначала сами производные классы, затем члены, а затем базовые. Члены и базовые создаются в порядке описания их в классе, а уничтожаются они в обратном порядке.

Производные классы должны обычно определять конструктор копии и функцию operator=( )

ПОРЯДОК ВЫЗОВА КОНСТРУКТОРОВ

Порядок вызова конструкторов при создании объектов производных классов в С++ фиксирован - он идет от корневого базового класса к производным по дереву наследования. Прежде всего строится базовый класс, затем производный. Если базовый класс, в свою очередь, является про изводным, то процесс рекурсивно повторяется до тех пор, пока не будет достигнут корневой класс.ПОРЯДОК ВЫЗОВА ДЕСТРУКТОРОВ обратный к порядку вызова конструкторов.

Соседние файлы в папке Ответы на билеты