c++ - 如何修复派生类给出“声明没有存储类或类型说明符”错误?
问题描述
我正在尝试在派生类中初始化基类变量,但是却出现错误:
"this declaration has no storage class or type specifier"
我一直在修改 Visual Studio 中的 C++ 继承和派生类。我用变量制作了主类“ Food
”protected
并想派生一个类“ Bread
”
当尝试在“ Bread
,”中初始化所述变量时,VS 会出错。我觉得这是一个非常简单的问题,我不知何故错过了。
#include <string>
using namespace std;
class Food
{
protected:
string name;
int cost;
int calories;
public:
Food(string name, int cost, int calories) {
}
};
class Bread : public Food
{
private:
name = "";
cost = 5;
calories = 200;
public:
};
我会除了Bread
要初始化的变量:
name
as ""
(空),cost
as“ 5
”,calories
as“ 200
”。
输出是一个错误:
"this declaration has no storage class or type specifier"
解决方案
我正在尝试在派生类中初始化基类变量!
首先,初始化Food
您提供的基类构造函数中的成员。
Food(std::string name, int cost, int calories)
: name{ name }
, cost{ cost }
, calories{ calories }
{}
然后,您需要在派生类的构造函数成员初始化器列表Bread
中初始化基类成员:
class Bread : public Food
{
public:
Bread()
:Food{ "", 5, 200 }
{}
};
这将初始化Food
成员
name = ""
cost = 5
calories = 200
推荐阅读
- javascript - 当多个元素具有相同的名称时,无法在成功的 Ajax 返回时定位单击的元素
- autodesk - 如何获取 forge-viewer onClick 事件的 xyz 坐标?
- sql-server - Power Automate、SQL Server 行更新
- javascript - 为什么我多次看到同一个域的本地存储?
- mule - 何时使用垂直和水平缩放?
- android - 在Android中的Adobe PDFBox中居中裁剪图像?
- google-sheets - 有没有办法使用“arrayormula”对 muptible 行进行计算?
- python - 计算python中新记录的滚动计数
- javascript - 点击汉堡图标后如何给导航栏列表元素添加过渡效果
- sql-server - 代码执行后无法连接数据库