Règles d'appel du constructeur de la classe de base en C++
Bonjour à tous ! J'ai commencé à apprendre le C++ et je suis tombé sur un problème avec l'héritage et les constructeurs. J'ai une classe de base `Animal` et une classe dérivée `Dog`. Je veux que lors de la création d'un objet `Dog`, le constructeur `Animal` qui prend un nom soit automatiquement appelé. Mais je n'y arrive pas.
Voici mon code :
```cpp
#include
#include
class Animal {
public:
Animal(const std::string& name) : name_(name) {
std::cout << "Animal constructor called for " << name_ << std::endl;
}
private:
std::string name_;
};
class Dog : public Animal {
public:
Dog(const std::string& breed) : breed_(breed) {
std::cout << "Dog constructor called for breed " << breed_ << std::endl;
}
private:
std::string breed_;
};
int main() {
Dog myDog("Labrador"); // Erreur de compilation !
return 0;
}
```
Le compilateur donne l'erreur : `no default constructor exists for class "Animal"`. Je comprends que `Animal` n'a pas de constructeur par