我想能夠容納一個類名的數組,並且只需將一個索引傳遞給一個可以創建某個類的實例的函數。我有內存限制,所以我不想簡單地創建一個對象數組。C++指向類名稱的指針
這裏是我最描述僞代碼:
類:
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;
}
如果這是混亂的,我可以嘗試闡明。提前致謝!
編輯:
真的,我想我只需要一個指向類,而無需實際實例化類。
你不能在你想要的方式來做到這一點。你也許可以對模板有點聰明,並找出一些東西。 – antonijn 2013-03-12 15:53:05
雖然我知道你在發佈僞代碼,但請記住,你會想讓你的基類是虛擬的,所以你可以實際調用基類指針的方法,並讓它們正確地調用派生類的方法。 – Jason 2013-03-12 15:56:09