当前位置:首页 > 芯闻号 > 充电吧
[导读][转自]lemonClover的日记使用boost::enable_shared_from_this的注意事项2011-10-26 16:44:26 1. 如果一个类继承了boost::enable_

[转自]lemonClover的日记

使用boost::enable_shared_from_this的注意事项2011-10-26 16:44:26 1. 如果一个类继承了boost::enable_shared_from_this,那么之后创建这个类的对象的时候,一定要用shared_ptr封装起来。
 2. 一定不要在构造函数和析构函数里面调用shared_from_this(),否则会引起十分诡异的错误。

 昨天就是因为在析构函数里面调用了另一个函数,而这个函数里面使用了shared_from_this(),导致运行时出现bad_weak_ptr的错误,调试了一个晚上和一个上午才发现。
【原因分析】
为什么不能在构造函数中调用shared_from_this

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

众所周知,在java里是不能给构造函数写返回值的,如果在低版本的编译器定义一个构造器写上返回值可能会报错,高版本里面他就是一个普通的方法。可如果构造函数没有返回值,比如Test t = new Test()我们new一个...

关键字: 构造函数 java

一. 什么是拷贝构造函数首先对于普通类型的对象来说,它们之间的复制是很简单的,例如:[c-sharp]view plaincopy inta=100; intb=a;而类对象与普通对象不

关键字: 构造函数

 1、拷贝构造函数:  模型:  [cpp] view plain copy class A      {        public :       A(A& a){      

关键字: 构造函数

基类的析构函数声明为virtual,而且并不是所有的析构函数都申明为virtual————————————因为当类里面有虚函数的时候,编译器会给类添加一个虚函数表,里面来存放虚函数指针,这样就会增加类

关键字: 析构函数

派生类的数据成员由所有基类的数据成员与派生类新增的数据成员共同组成,如果派生类新增成员中包括其他类的对象(子对象),派生类的数据成员中实际上还间接包括了这些对象的数据成员。因此,构造派生类的对象时,必

关键字: 构造函数 派生类

什么是面向对象既然讲到面向对象。就要了解另一种编程模式,面向过程 面向过程强调的是do,就是行为,相当于函数 面向对象强调的是this.do.重点在于this上就是将函数以及相关联的一些属性内容封装在

关键字: java 构造函数 面向对象

class A   {       int a;       int b;       int c;   public:       A(int aa, int bb) : a(aa), b(bb),

关键字: c++ 构造函数

public class PopupWindow extends Objectjava.lang.Object    ↳ android.widget.PopupWindow Class Overv

关键字: 动画 popupwindow 构造函数

__attribute__: GNU C 的一大特色就是__attribute__ 机制。__attribute__ 可以设置函数属性(Function),变量属性(Variable)和类型属性(Ty

关键字: c++ 构造函数 析构函数

       缺省情况下C++ 以by value方式(一个继承自C 的方式)传递对象至(或来自)函数。函数参数都是以实际实参的复件(副本)为初值。这些复件(副本)系由对象的copy构造函数产出,这可

关键字: c++ 构造函数
关闭
关闭