Avatar ·

Regeln zum Aufrufen des Basisklassenkonstruktors in C++

Hallo zusammen! Ich habe angefangen, C++ zu lernen, und bin auf ein Problem mit Vererbung und Konstruktoren gestoßen. Ich habe eine Basisklasse `Animal` und eine abgeleitete Klasse `Dog`. Ich möchte, dass beim Erstellen eines `Dog`-Objekts automatisch der `Animal`-Konstruktor aufgerufen wird, der einen Namen entgegennimmt. Aber ich bekomme es nicht hin. Hier ist mein 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"); // Compiler-Fehler! return 0; } ``` Der Compiler gibt einen Fehler aus: `no default constructor exists for class "Animal"`. Ich verstehe, dass `Animal` keinen Standardkonstruktor hat, aber