クラス 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を使用しています。