我正在尝试将派生对象添加到基本指针数组中。
我的课程定义如下(由于这是一项作业,因此无法更改):
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];
还要确保您的基本析构函数是虚拟的。