c++ - 基类构造函数争论与派生类构造函数之间的关系
问题描述
我无法理解这种说法:“如果基类具有带参数的构造函数,那么派生类必须具有构造函数并将参数传递给基类构造函数。” 如果可以的话,请使用一些程序。
解决方案
如果您有一个名为 Animal 的基类和一个名为 Dog 的派生类。您将需要在 Dog 的构造函数中调用 Animal 的构造函数来初始化继承的成员变量。一个非常基本的示例如下所示:
class Animal
{
int num_legs;
public:
Animal(int legs): num_legs(legs){}
};
class Dog: public Animal
{
public:
// now we send the number of legs to the Base class
Dog(int legs): Animal(legs) {}
};
如果您依赖 Dog 的默认构造函数,在这种情况下,您最终会得到一个未初始化的腿变量。
我希望这个对你有用。
推荐阅读
- validation - Flutter - 看不到禁用表单字段的验证消息
- php - 使用 FOS 学说FIxture 中的服务容器
- php - Symfony 学说字符集问题
- javascript - 选择单词时,window.getSelection() 在 Chrome 上返回一个空字符串
- sql-server - 无法从 open shift 容器平台连接 Windows 平台中的 SQL Server db
- react-native - 反应原生谷歌支付和条带集成错误
- ruby-on-rails - Michael Hartl Ruby on Rails 教程第 9 章失败的测试
- angular - 双向类型检查
- c - 错误:在 '.' 之前应为 ';'、',' 或 ')' 令牌?
- java - 如何从带有值的枚举生成表?