16

クラスのインスタンスを作成せずに呼び出すことができるC++クラスのメソッドを作成しようとしていますが(Javaの静的メソッドのように)、次のエラーが発生し続けます。error: expected unqualified-id before ‘.’ token

これが私がコンパイルしようとしている.cppファイルです:

using namespace std;
#include <iostream>

class Method {
    public:
    void printStuff(void) {
        cout << "hahaha!";
    }
};

int main(void){
    Method.printStuff(); // this doesn't work as expected!
    return 0;
}
4

1 に答える 1

31

C++では

Method::printStuff();

そして、メソッドをとして宣言する必要がありますstatic

class Method{
    public:
    static void printStuff(void){
        cout << "hahaha!";
    }
};

::スコープ解決演算子と呼ばれます。.クラスインスタンス上にある場合はでメソッドを呼び出すことができますが、インスタンスは必須ではありません(静的ですべて...)。

于 2012-09-08T19:25:03.940 に答える