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` 没有默认构造函数,