我看到的代码片段如下:
class UPNumber {
public:
UPNumber();
UPNumber(int initValue);
...
// pseudo-destructor (a const member function, because
// even const objects may be destroyed)
void destroy() const { delete this; } // why this line is correct???
...
private:
~UPNumber();
};
首先,我确信上面的类定义是正确的。 这是我的问题,为什么我们可以像上面那样定义函数'destroy'? 问的原因是为什么我们可以在常量成员函数中修改“this”?
最佳答案
这与这项工作的原因相同:
const int* upn = new int();
delete upn;
您可以删除
指向 const 限定对象的指针。成员函数上的 const 限定仅意味着 this
具有类型 const UPNumber*
。
关于c++ - 我们如何在常量成员函数中调用 "delete this; "?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5148656/