c++ - 为什么在类里面声明的指针类型的数据,在调用析构函数的时候都要用delete删除?

 天智-孙会军 发布于 2022-11-04 13:46
class dumb_array
{
public:
    // destructor
    ~dumb_array()
    {
        delete [] mArray;
    }

private:
    std::size_t mSize;
    int* mArray;
};

这是我在stackoverflow上看到的某个人回答时写的一段c++代码中的部分,我不懂为什么声明了一个指针的数据成员,在这个类里面就是int* mArray,为什么在用析构函数的时候,要用delete操作符去释放内存空间?这个指针指向的地址不一定是由堆分配而来的内存啊!看到好多代码,他们都用delete来释放这种数据成员所占据的内存。这是为什么呢?

2 个回答
  • 可能是因为他们不会或者不能使用智能指针吧…

    2022-11-08 04:45 回答
  • 你需要看这个类的构造函数是怎么写的,要把构造函数和析构函数一起看才行。

    2022-11-08 04:46 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有