- 595 名前:デフォルトの名無しさん [2008/02/24(日) 18:52:47 ]
- 継承について教えてください
CFooから派生したCFooEx0、CFooEx1、CFooEx2、CFooEx3があるとします。 そして、それぞれCJissou0、CJissou1、CJissou2、CJissou3に派生してるとします。 その上、CJissou0、CJissou1はIHoge0を、CJissou2、CJissou3はIHoge1を実装しているとします。 図にするとこんな感じ。 CFoo─CFooEx0┬CJissou0 IHoge0┘ CFoo─CFooEx1┬CJissou1 IHoge0┘ CFoo─CFooEx2┬CJissou2 IHoge1┘ CFoo─CFooEx3┬CJissou3 IHoge1┘ CFooとCFooEx〜は弄らないとして、IHoge〜のインターフェイス関数をCJissou〜に実装します。 で、マネージャー的な物例えば、std::vector<CFoo *> vecにそれぞれの実態を入れて、 CJissou〜の関数を呼びたいのですが呼ぶ際には、 dyanamic_cast<CJissou0 *>(vec[0])->Test();見たいな事をしないといけないと思います。 でもそういう呼び出しだとIHoge〜も意味が無くなってしまうし、数が多くなると厳しくなります。(IHoge〜は数個) だから、dyanamic_cast<IHoge0 *>(vec[0])->Test();//エラー 見たいな呼び方をしたいのですがどうすればいいのでしょうか?
|

|