Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/142.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;删除“;新的;?_C++_Pointers - Fatal编程技术网

C++ C++;删除“;新的;?

C++ C++;删除“;新的;?,c++,pointers,C++,Pointers,我正在学习关于内存泄漏的知识,我有一个如何删除“new”的问题 我有一个这样的构造函数: Car(string nameOfCar) { carName = nameOfCar; } class Chrysler : public Car { public: Chrysler(string sound = "wroooom") : Car(sound) {} }; car.setCar(new Chrysler())

我正在学习关于内存泄漏的知识,我有一个如何删除“new”的问题

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

Car(string nameOfCar) { carName = nameOfCar; }  
class Chrysler : public Car                             
{   
public:
    Chrysler(string sound = "wroooom") : Car(sound) {}
};
car.setCar(new Chrysler());
然后我有一个继承Car的类,如下所示:

Car(string nameOfCar) { carName = nameOfCar; }  
class Chrysler : public Car                             
{   
public:
    Chrysler(string sound = "wroooom") : Car(sound) {}
};
car.setCar(new Chrysler());
好的,我有更多的代码,但是我不认为我需要分享更多的代码来问我的问题。如果我错了,我当然会给你更多的代码

总之,总的来说,我喜欢这样:

Car(string nameOfCar) { carName = nameOfCar; }  
class Chrysler : public Car                             
{   
public:
    Chrysler(string sound = "wroooom") : Car(sound) {}
};
car.setCar(new Chrysler());

一切正常,但我有一个内存泄漏,因为我不知道如何删除新的克莱斯勒()。我想我的车里需要一个自毁装置,但我似乎没法把它弄对。有人愿意帮助我吗?:)

正确的方法是在创建的每个类的析构函数中设置delete运算符,以避免内存泄漏和崩溃。请发布一篇文章。您的学习材料说要做什么?什么是
car
?您提供的有关
car
s和
Chrysler
s构造函数的信息与
car.setCar(new Chrysler())
中的
main()
是否会导致内存泄漏没有任何关系。没有“解构器”这样的东西。我猜您是不是用
newchrysler
将分配的内存分配给了某个成员变量?使用它释放它?分配
new
,取消分配
delete
Chrysler c-Oops,现在您将尝试调用自动存储上的
delete