クラス名の配列を保持し、特定のクラスのインスタンスを作成する関数に単にインデックスを渡すことができるようにしたいと考えています。メモリの制約があるため、単純にオブジェクトの配列を作成したくありません。
これが私の最もわかりやすい擬似コードです。
クラス:
class Shape
{
public:
Shape();
};
class Square : public Shape
{
public:
Square();
};
class Triangle : public Shape
{
public:
Triangle();
};
主要:
int main()
{
pointerToShapeClass arrayOfShapes[2]; // incorrect syntax - but
arrayOfShapes[0] = pointerToSquareClass; // how would i do this?
arrayOfShapes[1] = pointerToTriangleClass;
cin << myNumber;
// Depending on input, create instance of class corresponding to array index
if (myNumber == 0) { // create Square instance }
if (myNumber == 1) { // create Triangle instance }
return 0;
}
これが紛らわしい場合は、説明を試みることができます。前もって感謝します!
編集:
本当に、クラスを実際にインスタンス化せずに、クラスへのポインタが必要なだけだと思います。