6.2.2 Конструкторы и деструкторы.

   


Назад  |  Вперёд

Для некоторых производных классов нужны конструкторы. Если конструктор есть в базовом классе, то именно он и должен вызываться с указанием параметров, если таковые у него есть:

           class employee {
             // ...
           public:
             // ...
             employee(char* n, int d);
           };

           class manager : public employee {
             // ...
           public:
             // ...
             manager(char* n, int i, int d);
           };

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

           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.

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


Назад  |  Вперёд


OtDiatlovaOU
К началу книги

Оформление и дизайн книги OtDiatlovaOU.
Вся книга, архив.