我是C ++的新手并且得到了初学者的错误:
myclass.cpp:在函数'int main()'中:
myclass.cpp:14:16:错误:'func'未在此范围内声明
这是代码:
#include <iostream>
using namespace std;
class MyClass{
public:
int func(int);
};
int MyClass::func(int a){
return a*2;
}
int main(){
cout << func(3);
}
我希望你能帮助我。
答案 0 :(得分:5)
int main(){
cout << func(3);
}
func
不是全局函数;它是该类的成员函数。您需要该类的实例才能访问它。
例如:
int main()
{
MyClass obj;
std::cout<< obj.func(3);
}
答案 1 :(得分:4)
func
是一个成员函数,因此必须通过对象调用它。例如:
int main()
{
MyClass obj;
std::cout << obj.func(3); // 6
}
在您的示例中,您将其视为自由函数,因此编译器会查找具有该名称的函数。由于找不到它,它发出了编译错误。
答案 2 :(得分:3)
func
是MyClass
的成员函数。要调用它,您需要一个MyClass
类型的对象来调用它:
int main(){
MyClass m; // Create a MyClass object
cout << m.func(3);
}
或者,您可以使func
成为static
成员函数,这意味着它不与该类的任何特定实例相关联。但是,您仍然需要将其名称限定为属于MyClass
类:
class MyClass{
public:
static int func(int);
};
int MyClass::func(int a){
return a*2;
}
int main(){
cout << MyClass::func(3);
}