Насколько я знаю, невозможно вызвать конструктор базового класса. Единственное, что я знаю, это:
MyClass::MyClass(/* args */) : Base(/* args */)
{
// ...
}
но это вызывает конструктор в начале. Есть ли способ вызвать его где-то еще в конструкторе? Что-то вроде этого:
MyClass::MyClass(/* args */)
{
// ... instructions
Base::Base(/* args */);
// ... other_instructions
}
В соответствии с этим Каковы правила для вызова конструктора суперкласса? вопрос я понимаю, что нет способа, но я читаю здесь, и я догадался, что это возможно, но если я попробую, я получу:
error: invalid use of 'class Base'.
Я что-то делаю неправильно? Возможно ли это сделать каким-то образом или есть ли другое возможное решение этой проблемы?
Спасибо!
EDIT: Я понимаю, что я забыл ключевой момент: базовый класс является частью структуры, и поэтому было бы неплохо не изменять его, если это возможно.