Вызов перегруженного базового конструктора из производного класса

Вопрос:

Если я правильно понимаю, конструктор базового класса всегда вызывается с созданием объекта производного класса. Есть ли способ вызвать перегруженный конструктор базового класса при создании производного объекта?

Лучший ответ:

Да, через список инициализации:

class Base
{
public:
  Base (int n) : mN(n) {}
private:
  int mN;
};

class Derived : public Base
{
public:
  Derived() : Base (42) {};
         // ^^^^^^^^^^^    
         // Initialization List
};

Подробнее о синтаксисе списка инициализации см. В этом вопросе:

Что это за странный синтаксис двоеточия («:») в конструкторе?

Оцените статью
TechArks.Ru
Добавить комментарий