C++ 删除"new"?
C++ Delete "new"?
我正在学习内存泄漏,我对如何删除"new"有问题。
我有一个这样的构造函数:
Car(string nameOfCar) { carName = nameOfCar; }
然后我有一个继承 Car 的类,如下所示:
class Chrysler : public Car
{
public:
Chrysler(string sound = "wroooom") : Car(sound) {}
};
好吧,我有更多的代码,但我认为我不需要分享比这更多的代码来提出我的问题。如果我错了,当然,我会给你更多的代码。
无论如何,总的来说,我确实喜欢这个:
car.setCar(new Chrysler());
一切正常,但我有内存泄漏,因为我不知道如何删除新的克莱斯勒((。我想我在 Car 中需要一个析构函数,但我似乎无法正确处理。有人愿意帮助我吗?:)
正确的方法是在创建的每个类的析构函数功能中设置删除运算符,以避免内存泄漏和崩溃
相关文章:
- 如果"new int"返回"int*",那么为什么"new int[n]"不返回"int**"?
- 有没有一种方法可以使用placement new将堆叠对象分配给分配的内存
- 重载运算符new[]的行为取决于析构函数
- 过载'operator new'如何导致无限循环?
- 创建具有 new in 函数和"this is nullptr"异常的对象
- Codelite C++ new project
- 在类c++中使用new声明数组
- g++用户定义的动态链接库上的全局new和delete运算符
- 如果整个应用程序是虚拟映射的,为什么 new 会进行系统调用?
- 在将 new 与指针一起使用时,创建数组的指定长度
- 体系结构x86_64的未定义符号:std:terminate(),typeinfo,运算符delete[],运算符new
- 为什么我的全局 new() 覆盖被绕过了?
- 声明C++数组(带或不带 "new" 关键字)
- 在C++中,如果我可以直接将整数分配给指针而不使用"new",为什么要使用"new"?
- 是否可以使用 new 指定具有宏常量的动态分配数组的元素?
- constexpr new 如何分配内存?
- 放置 new 和 uninitialized_fill() 的行为
- 使用 new 和 值进行数组初始化,但没有显式数量的元素
- different between int **arr =new int [ n]; and int a[i][j]?
- 为什么 std::make_shared 无法编译带有已删除运算符 new 的类型?