首页 > 其他 > 详细

关于类无限递归问题(转)

时间:2014-03-28 13:07:36      阅读:504      评论:0      收藏:0      [点我收藏+]
1.复制构造函数没有用引用而是值或指针
class A 
{
public:
A(const A a) { ... }  //因为每次传入一个对象时,会调用这个对象的拷贝构造函数,造成无限循环
  A(const A *a) { ... } //同上
  A(const A &a) { ... }
  ~A() { if(p!=NULL) { delete p; p=NULL; } } 
A* p;
};

2.析构函数无线循环
class A
{
public:
A() { p=this; }
~A() { if(p!=NULL) { delete p; p=NULL; } }
A* p;
};
不是构造的时候,是析构的时候,当析构的时候,p=this,delete p,即delete this,会再次调用析构函数,这是个无限递归调用

关于类无限递归问题(转),布布扣,bubuko.com

关于类无限递归问题(转)

原文:http://www.cnblogs.com/su-da/p/3629104.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!