我试图构建一个动态地将内存分配给异构数组的异构列表。我在声明中遇到了一些问题,这些声明都是为了使这一工作有效。到目前为止,我有这样的情况:
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 );
}
}我想知道是否使用异构列表动态地存储父类的指针,并正确地调用它们。任何帮助都将不胜感激。
发布于 2013-11-19 23:22:52
根据您的用法,并按照我们在评论中所说的,您应该为此更改GetList:
Class1 *& GetList( int i )
{
return list1[i];
}小心&。否则,使用GetList(i) =...的作业将是无用的。
https://stackoverflow.com/questions/20083204
复制相似问题