背景を説明させてください。Foo という抽象クラスがあります。
class Foo {
public:
virtual void bar() = 0;
}
このクラスから継承する 2 つのクラスがあります。
class FooOne : public Foo {
public:
void bar();
}
と
class FooTwo : public Foo {
public:
void bar();
}
まったく別のクラスで、これら 2 つのクラスのいずれかのインスタンスを保持できる関数で配列を作成したいと考えています。私が直面している問題は、このような動的な型の配列を作成できないことですよね? type のオブジェクトを作成できる Objective-C に慣れていますid
。
理想的には、これは私が探していたものです (疑似コード):
void someFunction(FooType type) {
class aClass = (type == FooTypeOne ? FooOne : FooTwo);
vector<aClass> container;
// Do something with the container.
}
注: このプロジェクトでは C++11 を使用できません。