Это не похоже на работу в C++ 11:C++ делегировании CTOR и родительский CTOR с аргументом
class B : public A
{
public:
B(const A& a)
: A(a) // parent constructor for passing the parameter
, B() // delegating constructor for init of other members
{};
// ...
};
НКУ говорит мне, что an initializer for a delegating constructor must appear alone
.
Как мне вызвать конструктор родительского класса с параметром и вызвать базовый конструктор класса B? (У меня есть куча других конструкторов в B, которые нуждаются в таком же поведении).
Прямо сейчас я рассматриваю возможность записи частной функции B::init()
и использования ее во всех телах-конструкторах, но это немного напоминает C++ 03.
Какое предпочтительное решение?
Почему бы не написать в другом направлении? 'B :: B(): B (A {}) {}' и 'B :: B (const A & a): A (a), other_member {} {}'. – Jarod42
@ Jarod42 Почему бы не написать ответ вместо комментария? – Barry
@ Барри: Не уверен, если я что-то не пропущу. – Jarod42