我在C++中有一个抽象基类,需要创建一个数组来存储它的子类。我使用指向子类的指针,因为数组的每个成员都需要具有相同的大小。目前,我声明和初始化我的数组是这样的:在C++中初始化抽象基类的子类的数组
warning: taking address of temporary
error: too many initializers for ‘BaseClass* [0]’
什么是这样做的正确方法:
BaseClass *array[];
...
array =
{
&SubClass1(...),
&SubClass2(...),
...
&SubClass3(...)
};
这是给我的,当我尝试编译下面?
我试过这个,但它给了我“错误:'BaseClass * [0]'”的初始化器过多。 – PandaConda
我刚刚在g ++ 4.8下测试了一个类似的东西,并且没有错误... http://ideone.com/phWplC – Johan
不幸的是我被gcc 4.4.7卡住了。这可能是为什么它不工作? – PandaConda