"invalid use of non static member function" 这是什么?
"invalid use of non static member function" What is this?
编辑:感谢您的所有快速回复,我现在对这个概念有了更好的理解。另外,下次我会尝试使我的错误消息更清晰。编辑:使用我的最新代码更新。错误发生在第 18 行。另外,我开始怀疑我的最新问题是否与原始类本身有关?
我试图用C++自学课程和对象。我曾经通过声明一个void
函数,在屏幕上输出一些东西,在main中调用对象,一切都运行良好。
现在,我想对此进行扩展,并做一个简单的补充。但是,我在代码块上遇到一些错误:
error: invalid use of non-static member function 'int Addition::add(int, int)'
error: no matching function for call to 'Addition::add()'
这是我的代码:
#include <iostream>
using namespace std;
class Addition {
public:
int add (int x, int y) {
int sum;
sum=x+y;
return sum;
}
};
int main()
{
int num1;
int num2;
int ans=addobj.add(num1,num2);
Addition addobj;
addobj.add(num1,num2);
cout<<"Enter the first number you want to add"<<endl;
cin>>num1;
cout<<"Enter the second number you want to add"<<endl;
cin>>num2;
cout<<"The sum is "<<ans<<endl;
}
开发人员应该学习做的最重要的事情之一是阅读编译器的消息。很清楚:
error: no matching function for call to 'Addition::add()'
您在类中的函数是
int add (int x, int y)
它需要 2 个参数,而您不传递任何参数:
addobj.add();
您有 2 个选项:
- 在
main
中创建和初始化x
和y
,并将它们作为参数传递 - 在没有参数的情况下制作
add
,在add
的正文中创建x
和y
,因为它们的值取自用户输入。
在这种情况下,由于函数的名称是 add
,我选择了第一个选项:
- 在
main
内声明int x, y;
- 读取
main
内的用户输入(使用cin
和cout
的部分) - 将
x
和y
作为参数传递给add
,如下所示:addobj.add( x, y );
- 存储结果(如果需要),如下所示:
int result = addobj.add( x, y );
您声明了一个将两个整数作为参数的方法add(int, int)
;调用它时必须提供这些参数。打印返回值也会很好:
Addition addobj;
std::cout << addobj.add(1, 2) << std::endl;
您的add
函数接受两个参数,但您调用它时没有参数,因此找不到匹配的函数。 您必须按照声明的方式调用函数,即
addobj.add(1, 2);
你的函数有两个参数,但你调用它而不提供它们。您需要提供函数所需的两个整数参数。为了有用,您也应该存储结果。像这样的东西
int a = 1;
int b = 2;
int result = addjobs.add(a,b);
相关文章:
- 为不同配置设置MSVC_RUNTIME_LIBRARY的正确方法是什么
- C++避免重复声明的语法是什么
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- "Warning : No return statement in function returning non-void"是什么意思?
- 黄金描述的C++ "Key Function"是什么?
- 给定以下内容,"function"是什么类型?
- "inline function need to be DEFINED in all tranlation units"背后的理由是什么?
- "invalid use of non static member function" 这是什么?
- std::function<的含义是什么;void(参考*)>在C++中
- 在定义之前声明一个未定义的 std::function 的目的是什么?
- 运算符== 对于 std::function 的真正目的是什么?
- "error: ’myfn’ declared as function returning a function"是什么意思?
- 函数"int (*function())[10];"是什么意思?
- "C2447: '{' : missing function header (old-style formal list?)"是什么意思?
- "Expected '(' for function-style cast or type construction"错误是什么意思?
- "unformatted input function"到底是什么意思?
- "member function already defined or declared" - 这是什么意思?
- Std::function和Std::bind是什么,什么时候应该使用它们
- c++中与java.util.function. provider等价的是什么?
- "::function()" cpp 中是什么意思?