c++ - 在析构函数中删除指针和映射

标签 c++

假设一个类包含指针和字符串映射。在析构函数中,除了删除指针外,我们是否还应该清除映射还是自动完成?

最佳答案

如果你有一个像std::map<>这样的成员变量(你已经分配了堆栈)然后你可以在你的类析构时依赖它的析构函数。该标准要求 std::map销毁后将释放所有内存。

如果你将它声明为一个指针并且你已经使用了new , 那么你应该使用 delete在你的析构函数中。请注意不要在析构函数中抛出任何异常,因为这会导致内存错误。

关于c++ - 在析构函数中删除指针和映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19414682/

相关文章:

c++ - 在 C++ 中监视内存分配

公共(public)成员的 C++ 替代方案

c++ - 将 vector 声明为类数据成员时出错

c++ - 为什么在通过指针编译时不能分配 const 初始化

c++ - 为什么即使参数标记为 'const' 也会调用复制构造函数?

c++ - 确定给定一组数字中的任何一个数字是否为零的最有效方法是什么?

c++ - 使用输入名称打开文件

c++ - 构造函数调用分配内存?

c++ - 在磁盘上/从磁盘存储/加载 C++ 对象

c++ - 左移错误