純粋な仮想メソッド(インタフェース)を持つ抽象基本クラスIBase
があるとします。基本クラスをパラメータとする関数を参照して派生クラスを渡すことは可能ですか?
次に、基本クラスからCFoo
,CFoo2
を派生します。
そして私たちはIBaseの使い方を知っています。これらのケースで
Foo(IBase *input);
通常のシナリオ は、このようなものです:
IBase *ptr = static_cast<IBase*>(new CFoo("abc"));
Foo(ptr);
delete ptr;
しかし、ポインタ管理を回避するために優れているので、このようなシナリオで参照を使用する方法はありますか?
Foo
がある
CFoo inst("abc");
Foo(inst);
:
Foo(IBase &input);
はい、あなたの質問には理想的です。 – ildjarn
はい。多型はポインタと参照の両方に作用します。キャストを止めてください。我々はハリウッドではない。 –