C++中类的构造函数抛出异常处理-两段初始化和智能指针
在构造BaseManager的过程中抛出了异常,虽然catch到了异常,但无论是BaseManager的析构函数还是BaseManager中已构造的_base都没有被析构。需要说明的是,如果将两段初始化的类作为基类时,基类的构造函数无法完成所有成员函数的初始化,第二段构造的内容需要移至最底层类(most-derived class)的第二段构造中。在类的构造过程中,如果因某些原因抛出异常导致构造函数没有按预期全部执行,则该实例化对象没有完全构造完成,类的析构函数不会被调用,可能导致资源泄露。
原创
2024-07-29 19:14:38 ·
418 阅读 ·
0 评论