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

effective条款15,在资源管理类中小心copying行为

时间:2016-06-15 18:44:10      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:

class A
{
private:
	int *p;
	void lock(){ cout << p << "is lock" << endl; }
	void unlock(){ cout << p << "is non-lock" << endl; }
public:
	A(int* a) :p(a){ lock(); }
	~A(){
		unlock();
	}
};
int main()
{
	int a1 = 1;
	A a(&a1);
	A b(a);
}

  结果

技术分享

a,b两个对象,根据后构造的先析构。b析构了,然后a又析构,就会导致程序崩溃

下面放出两大办法:

1)禁止复制(copy构造函数和operator=放进private)

2)使用shared_prt类的有计数功能的指针

...........后面搞不下去,待定

 

effective条款15,在资源管理类中小心copying行为

标签:

原文地址:http://www.cnblogs.com/vhyc/p/5588155.html

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