Avatar ·

C++中调用基类构造函数的规则

大家好!我开始学习C++,遇到了继承和构造函数的问题。我有一个基类 `Animal` 和一个派生类 `Dog`。我希望在创建 `Dog` 对象时自动调用接受名字的 `Animal` 构造函数,但一直不成功。 这是我的代码: ```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"); // 编译错误! return 0; } ``` 编译器报错:`no default constructor exists for class "Animal"`。我明白 `Animal` 没有默认构造函数,