码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2014-11-26 10:47:39      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:des   blog   http   ar   sp   on   div   art   问题   

http://blog.csdn.net/jia_xiaoxin/article/details/3348045

当我们规定类只能在堆上分配内存时,就可以将析构函数声明为私有的。

class alloc

{

public:

    alloc():

private:

   ~alloc();

};

 

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

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

 

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

class alloc

{

public:

    alloc():

 destroy(){ delete this;}  

private:

   ~alloc();

};

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

标签:des   blog   http   ar   sp   on   div   art   问题   

原文地址:http://www.cnblogs.com/jingzhishen/p/4122454.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!