私はまだテスト/コンパイルとそれが可能かどうか、そしてそれが悪い設計であるか疑問に思っていないという問題がありますか?2つの抽象クラスからの継承
私の問題:私は抽象基底クラスAと抽象派生クラスB
を持ちたい
私はこれが可能であるならば、私は各クラスに純粋仮想メンバ関数の番号を持つことになります実現これらのオブジェクトを初期化することはできませんが、これは抽象クラスに与えられています。私の設計では
私はその後、初期化します別の派生クラスCになります - クラスCはクラスB
から派生されるだろう、私はこの
class C
^
|
abstract class B
^
|
abstract base class A
私の質問のように見えた何かを持っているだろうし:
まずこれが可能ですか?私はそれを疑うだろうが、クラスBのAの純粋な仮想関数を宣言するのは面倒かもしれない?
e.x。
class A {
public:
virtual void test()=0;
};
class B: public A {
public:
virtual void test()=0;
virtual void anotherTest()=0;
};
上記は大丈夫ですか?
この悪いC++デザインですか?将来私はAからクラスを派生させていますので、このデザインを持つことはいいでしょう。
「それは可能ですか?質問:あなたはそれをコンパイルするのを待っていますか? 「それは悪いデザインですか?質問:あなたが設計しているものの要件を知らなくても、実際にそれを伝えることはできません。 –
はい、その罰金。なぜこれは悪いデザインですか?例えばAnimalとその子孫Mammalはどちらも抽象型ですが、さらに具体的なクラスのための良い基盤です。 – StuartLC
私はそれを書き終えていません。 :-Dプラス私は抽象クラスデザインをやっているかどうか検討したかった。 – MWright