首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >异构列表和DMA

异构列表和DMA
EN

Stack Overflow用户
提问于 2013-11-19 22:15:59
回答 1查看 257关注 0票数 0

我试图构建一个动态地将内存分配给异构数组的异构列表。我在声明中遇到了一些问题,这些声明都是为了使这一工作有效。到目前为止,我有这样的情况:

代码语言:javascript
复制
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 );  
 }

}

我想知道是否使用异构列表动态地存储父类的指针,并正确地调用它们。任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-19 23:22:52

根据您的用法,并按照我们在评论中所说的,您应该为此更改GetList:

代码语言:javascript
复制
Class1 *& GetList( int i )
{
 return list1[i];
}

小心&。否则,使用GetList(i) =...的作业将是无用的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20083204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档