Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/140.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;错误:";成员引擎::x不是类型名称;_C++_Types_Parameters - Fatal编程技术网

C++ C++;错误:";成员引擎::x不是类型名称;

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,因此不需要参数。例如,它

我正在构建一个标准的4func计算器,我正在尝试传递两个数字作为用户输入的参数。在我的引擎内,我已经申报了h类

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是某个类的成员变量,但没有提到。