C++ 删除"new"?

C++ Delete "new"?

本文关键字:new C++ 删除      更新时间:2023-10-16

我正在学习内存泄漏,我对如何删除"new"有问题。

我有一个这样的构造函数:

Car(string nameOfCar) { carName = nameOfCar; }  

然后我有一个继承 Car 的类,如下所示:

class Chrysler : public Car                             
{   
public:
    Chrysler(string sound = "wroooom") : Car(sound) {}
};
好吧,我

有更多的代码,但我认为我不需要分享比这更多的代码来提出我的问题。如果我错了,当然,我会给你更多的代码。

无论如何,总的来说,我确实喜欢这个:

car.setCar(new Chrysler());

一切正常,但我有内存泄漏,因为我不知道如何删除新的克莱斯勒((。我想我在 Car 中需要一个析构函数,但我似乎无法正确处理。有人愿意帮助我吗?:)

正确的方法是在创建的每个类的析构函数功能中设置删除运算符,以避免内存泄漏和崩溃