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のメンバー関数ですMyClassMyClassそれを呼び出すには、それを呼び出すタイプのオブジェクトが必要です。

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 に答える