は、私はちょうどこのコードの次のブロックは、C++で完全に有効であるかどうかを知りたいと思った:これは有効なC++コードですか?
class A
{
public:
virtual bool b() = 0;
};
class B
{
public:
virtual bool b() = 0;
};
class C: public A, public B
{
public:
virtual bool A::b()
{
return true;
}
virtual bool B::b()
{
return false;
}
};
それがエラーなしでコンパイルVS2008を使用して、しかし、GCC(MinGWの)上で、それは私のようなエラーが発生します3.4.5:
cannot declare member function `A::b' within `C'
仮想メソッドが実装されている行について。これは一般的に無効であると考えられていて、C++標準の禁止コード(VSではGCCのバグやサポートされていない魔法のおかげで動作します)に興味がありました。
とは別に、非仮想のdtorは目立つ爆弾です。それは問題ではありませんでした。 :) – wilhelmtell