C++ C++;错误:";成员引擎::x不是类型名称;
我正在构建一个标准的4func计算器,我正在尝试传递两个数字作为用户输入的参数。在我的引擎内,我已经申报了h类C++ C++;错误:";成员引擎::x不是类型名称;,c++,types,parameters,C++,Types,Parameters,我正在构建一个标准的4func计算器,我正在尝试传递两个数字作为用户输入的参数。在我的引擎内,我已经申报了h类 float num1, num2; 我有这个功能 float Add(num1, num2); 在这些参数中,num1和num2都有标题中所述的错误:“错误:成员引擎::num1不是一个类型名。”我很困惑为什么这些参数会带来错误,这不是参数的工作方式吗?只需将成员函数声明为 float Add() const; 由于该函数将处理数据成员num1和num2,因此不需要参数。例如,它
float num1, num2;
我有这个功能
float Add(num1, num2);
在这些参数中,num1和num2都有标题中所述的错误:“错误:成员引擎::num1不是一个类型名。”我很困惑为什么这些参数会带来错误,这不是参数的工作方式吗?只需将成员函数声明为
float Add() const;
由于该函数将处理数据成员num1和num2,因此不需要参数。例如,它可以定义为
float Engine::Add() const
{
return num1 + num2;
}
至于错误,那么您忘记了编写参数的类型说明符
而不是
float Add(num1, num2);
至少有
float Add( float num1, float num2);
我也犯了同样的错误,因为我是一个noob,我认为可以在声明中调用成员的构造函数,就像在函数中一样:
private:
MySmartClass myClass(getMySetting());
不用说,您不能这样做,要调用成员的构造函数,您需要这样做:
public:
MyContainingClass() : myClass(getMySetting()) {}
^^^^^^^^^^^^^^^^^^^^^^^
在函数声明中提供参数类型:
float Add(float num1,float num2)代码>谢谢。我已经做了足够长的时间,觉得我不需要再参考教程了,但显然做得不好。这假设Add是一个成员函数,num1和num2是某个类的成员变量,但没有提到。