【发布时间】:2019-07-28 23:32:34
【问题描述】:
new 是唯一允许我们检测 C++ 中动态内存分配的运算符吗?
我问这个是因为我想为我的类的析构函数释放所有动态内存分配。
【问题讨论】:
-
“检测动态内存分配”是什么意思?如果使用
new,则必须与delete匹配(new[]和delete[]相同)。你真的需要手动和显式的内存处理吗?考虑“动态数组”的the standard smart pointers 或std::vector。在某些情况下,可以完全避免使用指针。如果这是我们不知道的一种情况,因为您没有向我们提供任何背景或信息。 -
检测
operator new中的内存分配并在析构函数中释放它们可能是错误的设计,因为您将无法“记住”构造对象的类型。您想如何在析构函数中正确销毁它们?
标签: c++ class memory-management destructor