Avatar ·

Reglas de llamada al constructor de la clase base en C++

¡Hola a todos! Acabo de empezar a estudiar C++ y no logro entender las reglas de llamada al constructor de la clase base en la herencia. Supongamos que tengo una clase simple `Animal` y una clase `Dog` que hereda de ella:\n\n```cpp\nclass Animal {\npublic:\n Animal() { cout << "Animal created"; }\n Animal(string name) : name_(name) { cout << "Animal " << name << " created"; }\nprivate:\n string name_;\n};\n\nclass Dog : public Animal {\npublic:\n Dog() { cout << "Dog created"; }\n Dog(string name) { cout << "Dog " << name << " created"; }\n};\n```\n\nCuando creo un objeto `Dog` sin parámetros, se llama al constructor por defecto `Animal()`, y eso es lógico. Pero cuando escribo `Dog d("Buddy")`, primero se llama a `Animal()` y luego a mi constructor `Dog(string