您的位置:首页 > 其它

析构函数声明为私有的作用

2008-11-21 23:09 127 查看
当我们规定类只能在堆上分配内存时,就可以将析构函数声明为私有的。

class alloc

{

public:

alloc():

private:

~alloc();

};

如果在栈上分配空间,类在离开作用域时会调用析构函数释放空间,此时无法调用私有的析构函数。

如果在堆上分配空间,只有在delete时才会调用析构函数。

可以添加一个destroy()函数来释放,从而解决不能在析构函数中添加delete的问题。

class alloc

{

public:

alloc():

 destroy(){ delete this;}  

private:

~alloc();

};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: