C++初始化基类
C++ Initialise base class
我在继承方面遇到了问题。
我有一个基类Entity和一个派生类Item。我想实例化一个具有名称和描述的项,该项将传递回基类Entity。它告诉我:"‘Item’的构造函数必须显式初始化没有默认构造函数的基类‘Entity’。">
以下是我在标题中尝试的方法:
Item(string name, string description): Entity(name, description){};
以及实现:
Item::Item (string name, string description) {
}
干杯
您只需要稍微重新排序代码。将参数传递给基类构造函数的: Entity(name, description)
部分应该是构造函数实现的一部分,而不是声明的一部分。
也就是说,报头应该包含位
Item(string name, string description);
实施应包含:
Item::Item (string name, string description): Entity(name, description) {
}
相关文章:
- C++类 - 初始化列表 - 递归 - 按值传递
- 何时为派生类初始化 vptr?
- 虚拟基类初始化
- 类初始化中的静态 lambda
- 如何防止在基类初始化器中调用默认构造函数?
- 如何在派生类中存储基类初始化期间获得的信息
- 是否可以在基类初始化器列表中传递成员对象
- 多重继承、复制构造函数和基类初始化
- 是否将类初始化的常量成员传递给基构造函数
- C++是否要求您从其派生类初始化基类成员
- 如何使用运行时选择基 CTOR 初始化不可复制的基类
- 继承和复制构造函数-如何从基类初始化私有字段
- 在使用虚拟继承时,我可以避免重复的基类初始化吗
- 基类初始化器和成员变量初始化器的顺序重要吗
- 在初始化列表中基类初始化之前调用函数
- 虚拟基类初始化
- 尽管类名与C++完全匹配,但模板基类初始化构造函数失败
- 初始化派生类初始化器列表中的基类成员
- 了解基类初始化
- 关于派生类初始化中的基类