C++ C++;删除“;新的;?
我正在学习关于内存泄漏的知识,我有一个如何删除“new”的问题 我有一个这样的构造函数: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())
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
。