0

クラス Foo のメンバーとして static を宣言することにしたクラス Tester があります。

class Tester {

public:

    bool test(const Data &d);
};

class Foo {

    static Tester tester;  
};

しかし、Foo のインスタンスから tester.test(data) を呼び出すと、プログラムは正常にコンパイルされますが、呼び出し後に応答しません。Tester::test を静的にすると、

class Tester {

public:

    static bool test(const data &d);
};

その後、動作します。どうしてこれなの?たとえば、静的ベクトルがある場合、静的クラスを宣言し、非静的メンバーを使用できるようにする必要があります。コンパイルにはgcc 4.7を使用しています。

4

1 に答える 1