我正在尝试将派生对象添加到基本指针数组中。

我的课程定义如下(由于这是一项作业,因此无法更改):

Base** bases;


现在,我正在使用基本指针数组:

Base** bases=new Base*[2];


并添加如下元素:

bases[0]=new Derived1;
bases[1]=new Derived2;


如果不是因为我似乎无法追踪到的内存泄漏,这会很好。我读到我可以将向量用于更好的内存管理以达到类似目的。

我试过了:

vector<Base*>basesV;
basesV.push_back(new Derived1);
basesV.push_back(new Derived2);


看来可行,但是如何将向量basesV“附加”到我的Base **类中呢?

只需bases = basesV;似乎不起作用。我会使用基本指针数组吗?

我也有一个接受Base **的函数,删除上面的向量似乎也不起作用。

谢谢你的帮助。

最佳答案

如果我正确理解...

bases = &basesV[0];


还要确保您的基本析构函数是虚拟的。

08-25 00:36