旅行网站开发意义,怎样优化网络速度,好看的企业网站,企业营销网站建设的基本步骤同一个类构造函数之间相互调用导致的异常
错误示例代码
class MyClass {
public:MyClass() { p_ std::make_sharedint();}MyClass(int b) b_(b) { MyClass();}
private:int b_;std::shared_ptrint p_;
};上面代码在使用MyClass(int b)构造函数实例化对象后 std::make_sharedint();}MyClass(int b) b_(b) { MyClass();}
private:int b_;std::shared_ptrint p_;
};上面代码在使用MyClass(int b)构造函数实例化对象后会造成b_初始化了但p_没有初始化。因为构造函数体内调用 MyClass() 构造函数实际上是创建了一个临时对象构造完成后就释放了。
改为正确的调用方法
class MyClass {
public:MyClass() { p_ std::make_sharedint();}MyClass(int b) : MyClass(){ b_ b; }
private:int b_;std::shared_ptrint p_;
};