C++初始化基类

C++ Initialise base class

本文关键字:基类 初始化 C++      更新时间:2023-10-16

我在继承方面遇到了问题。

我有一个基类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) {
}