搜尋

首頁  >  問答  >  主體

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

class dumb_array
{
public:
    // destructor
    ~dumb_array()
    {
        delete [] mArray;
    }

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

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

PHP中文网PHP中文网2885 天前579

全部回覆(2)我來回復

  • ringa_lee

    ringa_lee2017-04-17 13:46:30

    你需要看這個類別的建構子是怎麼寫的,要把建構子跟析構函式一起看才行。

    回覆
    0
  • 黄舟

    黄舟2017-04-17 13:46:30

    可能是因為他們不會或不能使用智慧指標吧…

    回覆
    0
  • 取消回覆