Timothy

链接

《More Exceptional C++》------ ( 1 )
《More Exceptional C++》------ ( 3 )

《More Exceptional C++》------ ( 2 )

Timothy posted @ 2010年9月02日 23:12 in Reading Notes , 1320 阅读

 

条款17:构造函数失败和异常
(1):对象的生命期, 从构造函数退出 到 进入析构函数.
(2):如果在对象构造函数就失败了,发生异常, 则说明此对象不曾存在过...
 
 
条款18:构造函数失败: 吸收异常?
(1):C++中,在构造或析构函数中使用 try catch是合法的,( 可以try 成员初始化列表), 但是函数也必须以抛出一个结束, 就算在catch中没写,但是在catch结束时,
也会由系统自动抛出默写一句:throw, 抛出异常结束.
(2):C++中, 只要基类或成员子对象构造失败,整个对象构造就会失败.
(3):在构造函数中使用try catch的意义就是转化 基类异常和子成员异常.( 不需要做所谓的析构处理,它们抛出异常就说明未曾产生 )
(4):析构函数不能抛出异常: 1, 析构就是清理工作,发生异常就是给你捕捉做清理工作,两者是矛盾的 2, 栈碾转机制,
    析构的异常,必须在析构的内部catch住.
    (这是C++标准里的一条)
(5):C++标准里的一条:在构造或者析构的try catch块中,引用对象的任何静态成员或者基类都将导致不可预测行为.
 
 
条款19:uncaught_exception()
(1):少用此函数, 而该写自己强壮的异常处理代码.
 
条款20:未管理指针存在的问题之一:参数求值
(1):形如 f( g( exp1 ), h( exp2 ) ), 表达式exp1, 和 exp2必然先于函数调用前求值, 也可能交叉进行,但是函数调用不可以交叉进行. 所以结果: 1就是exp1和exp2前求值,顺序不计;2就是exp1先求,再g(),然后去计算h(exp2),当然h( exp2 )在前也可以.
(2):多表达式参数函数, 求参时异常容易导致内存泄漏。
 
条款21:未管理指针存在的问题之二:auto_ptr
(1):把表达式求值隐藏到函数调用中,可以避免求值顺序的交叉或者异常导致的一些问题.
(2):把这样的表达式函数参数提出来,做成独立的显式资源分配,效果更好。
 
 
条款22:异常安全和类设计:拷贝赋值
(1):pimpl手法
(2):a),指针上的操作不会抛出异常 b)使用指针却带来内存和资源的问题,应该把他们管理起来(auto_ptr)
 
 
条款23:异常安全和类设计:继承
(1):松散的耦合可以提高安全性(包括异常安全),紧密的耦合降低'最大可能安全性'(包括异常安全). --- 包容 好于 私有继承
 
 
 
条款24:为什么使用多继承
(1):避免多继承自多个 非纯虚基类.  ( 多继承一般适用于 多接口继承)
(2):使用场合:a) 继承多个已存在的库 b) 多接口继承(COM) c)易于多态使用, 子类可以方便替代多个使用基类的地方.
 
 
条款25:如何模拟多继承
 
条款26:多继承和连体双婴问题
(1):多继承自CBase_a,CBase_b,若在两个基类中有同名虚函数 virtual ... FuncV( ... ) [ = 0 ], 要实现子类重写而具有两个功能,方法:
分别从CBase_a, CBase_b派生出代理类,用不同函数调用这个FuncV,子类再从此二者多继承,改写这两个不同的函数实现(子类切不可修改FuncV).
 
条款27:纯虚函数
(1): 纯虚函数也可以出现定义函数体: a),纯虚析构函数  b)提供缺省行为,明确使用 c)提供部分行为 d)
(2): 基类的析构函数,要么应该是虚public函数,要么应该是非虚protected函数(确保不通过基类指针删除子类).
 
 
条款28:受控的多态
(1): 如何让Func1在接受CBase&参数时,可以多态的使用CDerived&, 但是禁止Func2这样:
      声明CDerived私有继承自CBase, 然后Func1是它的 友元.
 
 
 
Avatar_small
NCERT Civics Questio 说:
2022年9月24日 02:59

Every year subject experts of the course have designed and suggested NCERT 10th Class Civics Question Papers 2023 with IMP question for theory, objective (MCQ) and Bit Questions. Teaching Staff of Leading Educational Institutes also prepared Solved Question Bank with all important questions for Hindi Medium, NCERT Civics Question Paper Class 10 English Medium and Urdu Medium students.Every year subject experts of the course have designed and suggested NCERT 10th Class Civics Question Papers 2023 with IMP question for theory.


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter