You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++中类被销毁时,其成员指针会自动执行delete操作吗?

类销毁时成员指针不会自动执行delete

不会。

你代码里的Object* b是C++的原生裸指针,它本质上只是个存储内存地址的变量。当类A的对象被销毁时,只会销毁这个指针变量本身(释放它占用的那几个字节的内存),但它指向的Object对象不会被自动调用delete释放——这会导致内存泄漏,那块内存会一直被占用,直到程序结束。

如果希望类销毁时自动释放指针指向的对象,应该使用C++标准库提供的智能指针,比如std::unique_ptr或std::shared_ptr。示例如下:

#include <memory> // 必须包含智能指针的头文件

class A
{
public:
    std::unique_ptr<Object> b; // 用unique_ptr替代裸指针
};

当类A的对象被销毁时,std::unique_ptr会自动调用delete释放它指向的Object对象,无需手动处理,能有效避免内存泄漏。

内容的提问来源于stack exchange,提问作者user19226400

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 14:39:25