【发布时间】:2013-03-12 15:49:50
【问题描述】:
我希望能够保存一个类名数组,并简单地将索引传递给将创建某个类的实例的函数。我有内存限制,所以我不想简单地创建一个对象数组。
这是我最具描述性的伪代码:
类:
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;
}
如果这令人困惑,我可以尝试解释一下。提前致谢!
编辑:
真的,我认为我只需要一个指向类的指针,而无需实际实例化该类。
【问题讨论】:
-
您不能以您尝试的方式执行此操作。你可能会有点聪明地使用模板并想出办法。
-
虽然我知道您发布的是伪代码,但请记住,您需要将基类设为虚拟,以便实际调用基类指针上的方法并让它们正确调用派生类的方法。
标签: c++ arrays pointers dynamic-memory-allocation