gpt4 book ai didi

c++ - 使用 vector 指向基指针的指针数组

转载 作者:太空宇宙 更新时间:2023-11-04 13:36:01 24 4
gpt4 key购买 nike

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

我的类定义如下(因为这是一个作业,所以不能更改):

Base** bases;

现在我正在使用一个基指针数组:

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

然后像这样添加元素:

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

如果不是因为我似乎无法追踪的内存泄漏,这工作正常。我读到我可以将 vector 用于类似目的,并具有更好的内存管理。

我试过:

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

这似乎可行,但我如何将 vector basesV“附加”到我的类 Base** 基中?

简单的bases=basesV;似乎不起作用。我是否一直在使用基指针数组?

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

感谢您的帮助。

最佳答案

如果我没理解错的话...

bases = &basesV[0];

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

关于c++ - 使用 vector 指向基指针的指针数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29584258/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com