我正在尝试构建一个异构列表,为异构数组动态分配内存。我在进行这项工作所需的声明方面遇到了一些麻烦。到目前为止,我有类似的东西:
class Class1
{
public:
Class1 * GetList( int i, Class1& c );
void Create( int size );
private:
Class1 ** list1;
};
class Class2: public Class1
{
...
};
Class1 * GetList( int i, Class1& c )
{
return c.list1[i];
}
void Class1::Create( int size )
{
list1 = new Class1*[size];
}
int main()
{
Class1 c;
int size = 0;
cin >> size;
c.Create( size );
for( int i = 0; i < size; i ++ )
{
c.GetList( i, c ) = new Class2;
c.GetList( i, c )->SetParams( some params );
}
}
我想知道我是否使用异构列表来动态存储父类的指针并在 main 中正确调用它们。任何帮助将非常感激。