Avatar ·

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