0

我是 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);
}

我希望你能帮助我。

4

3 回答 3

5
int main(){
    cout << func(3);
}

func不是全局函数;它是类的成员函数。你需要一个类的实例来访问它。

例如:

int main()
{
   MyClass obj;
   std::cout<< obj.func(3);
}
于 2013-04-21T21:47:10.437 回答
4

func是成员函数,所以必须通过对象调用。例如:

int main()
{
    MyClass obj;

    std::cout << obj.func(3); // 6
}

在您的示例中,您将其视为自由函数,因此编译器会查找具有该名称的函数。由于找不到它,它发出了编译器错误。

于 2013-04-21T21:47:28.373 回答
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);
}
于 2013-04-21T21:47:30.813 回答