は、私は基本抽象クラスを考えてみましょう基本クラスオブジェクトは、派生クラスの種類を推定する方法
class Test
{
public:
vector< Base* > base_vector;
};
質問1:基本クラスのオブジェクトへのポインタのベクトルがある場合は、派生クラスへのポインタ、右?
だから、私は以前に派生クラス型
void (Test test)
{
vector<Base*> objects = test.base_vector;
}
QUESTION 2のオブジェクトへのポインタで満たされていた既存のテストクラスから、このベクトルにアクセスし、今言うことができます:それは可能ですの型名を推定します派生オブジェクト、ポインターは? (派生クラスはテンプレートです)
または派生クラスで定義された関数()を呼び出すことはできますか?派生クラスの型については気にしませんか?
もしそうでなければ、これらのクラスの最小限の変更は何ですか?
あなたの問題はもう少し説明できますか? 「派生クラスの種類を推論する方法はありますか?」は本当に意味をなさない。 – Qix
"明らかに、このクラスはDerivedクラスも受け入れます" ...オブジェクトのスライスについては、 'Derived 'を' Base'のベクトルに配置すると期待した効果が得られない可能性があります。 – user463035818
多相ベクトル派生クラスのオブジェクトでは)オブジェクトではなくポインタを含む必要があります。 –