私は、個人的なプロジェクトでフレームワークのさまざまなコンポーネントのインターフェイスを設定しています。私は突然、インターフェイスで役に立つかもしれないものを考えました。私の質問はこれが可能であるかどうかです:あなたはこのような何かを行うことができるかもしれないように、派生オブジェクト内で定義する必要がある仮想クラスまたは純粋仮想クラスを宣言するクラス内に仮想クラス宣言を入れることは可能ですか?
class a
{
public:
virtual class test = 0;
};
class b : public a
{
public:
class test
{
public:
int imember;
};
};
class c : public a
{
public:
class test
{
public:
char cmember; // just a different version of the class. within this class
};
};
ソート、 :
int main()
{
a * meh = new b();
a * teh = new c();
/* these would be two different objects, but have the same name, and still be able
to be referred to by an interface pointer in the same way.*/
meh::test object1;
teh::test object2;
delete meh;
delete teh;
return 0;
}
MSVC++は私に構文エラーの束を投げるので、これを行う方法があり、私はちょうどそれが右に書いていませんよ?
あなたはおそらく*抽象クラスを使用してこれを達成することができます* –
は何でもそれは、上記のコードであることは解決策ではありませんので、あなたの本当の問題は何XYの問題のような音 – MSalters