c++ - 为什么在类里面声明的指针类型的数据,在调用析构函数的时候都要用delete删除?
PHP中文网
PHP中文网 2017-04-17 13:44:30
0
2
562
class dumb_array
{
public:
    // destructor
    ~dumb_array()
    {
        delete [] mArray;
    }

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

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

PHP中文网
PHP中文网

认证0级讲师

reply all(2)
左手右手慢动作

You need to see how the constructor of this class is written, and you need to read the constructor and destructor together.

黄舟

Maybe it’s because they don’t know or can’t use smart pointers...

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template