小编 V*_*oxd的帖子

如何正确释放类成员?

我应该使用delete重载或del()函数或其他东西来释放类成员吗?

class Field
{
private:
    size_t* square = new size_t[5];
public:
    void del()
    {
        delete[] square;
    }
    void operator delete (void* p)
    {
        delete[] reinterpret_cast<Field*>(p)->square;
    }
};
int main()
{
    Field f;

    delete &f; 
    //or
    f.del();
}
Run Code Online (Sandbox Code Playgroud)

c++ operator-overloading user-defined-functions class-members

-1
推荐指数
1
解决办法
74
查看次数