我想能够容纳一个类名的数组,并且只需将一个索引传递给一个可以创建某个类的实例的函数。我有内存限制,所以我不想简单地创建一个对象数组。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