Por lo que yo sé, no es posible llamar al constructor de la clase base. La única forma que conozco es la siguiente:Llamar al constructor de la clase base después de algunas otras instrucciones en C++
MyClass::MyClass(/* args */) : Base(/* args */)
{
// ...
}
pero esto invocaría al constructor al principio. ¿Hay alguna manera de llamarlo a otro lugar en el constructor? Algo como esto:
MyClass::MyClass(/* args */)
{
// ... instructions
Base::Base(/* args */);
// ... other_instructions
}
De acuerdo con esta What are the rules for calling the superclass constructor? pregunta que entiendo que no hay manera pero he leído here y supuso que era posible, pero si lo intento me sale:
error: invalid use of 'class Base'.
Estoy haciendo ¿algo mal? ¿Es posible hacer esto de alguna manera o hay alguna otra solución posible a esta necesidad?
Gracias!
EDIT: Entiendo que olvidé un punto clave: la clase base es parte de un marco, y por lo tanto sería bueno no tener que modificarlo, si es posible.
La pregunta es: * ¿Por qué necesita esta –
* Y la respuesta es - no?. –
por alguna razón no puedo volver a responder esta pregunta, creo que es apropiado agregar OOP como una etiqueta. – amit