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
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen
Blogs
Wie man ein C#-Vorstellungsgespräch besteht: Top-Fragen und Antworten
Kotlin Boolean? in if: Wie Sie die Leistung nicht verlieren
Kotlin für maschinelles Lernen: Möglichkeiten und Einschränkungen für Anfänger
PHP in realen Projekten: Fallstudien und Architekturlösungen von Unternehmen