摘要: Differentiate between inheritance of interface and inheritance of implementation. 请记住:接口继承和实现继承不同,在public继承之下,derived classes总是继承base class的接口. pure virtual函数只具体指定接口继承。 简朴的(非纯)impure virtual函数具体指定接... 阅读全文
posted @ 2013-10-23 16:33 CrazyCode. 阅读(127) 评论(0) 推荐(0) 编辑
摘要: Avoid hiding inherited name. 记住: 1.dervied classes内的名称会遮掩base classes内的名称。在public继承下从来没有人希望如此. 2.为了让被遮掩的名称重见天日,可使用using 声明式或转交函数(forwarding functions); 阅读全文
posted @ 2013-10-23 14:56 CrazyCode. 阅读(97) 评论(0) 推荐(0) 编辑
摘要: Make sure public inheritance models “is –a “ 如果令clsss D 以public的形式继承class B,你便是告诉编译器说,每一个类型为D的对象同时也是一个类型为B的对象,反之不成立。你的意思是B比D表现出更一般化的概念,而D比B表现出更特殊化的概念。你主张"B"对象可以派上用场的任何地方,D对象一样可以派上用场。因为每一个D对象都是一个B对象。反... 阅读全文
posted @ 2013-10-23 14:13 CrazyCode. 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 当异常被抛出时,带有异常安全性的函数: 1.不泄露任何资源 2.不允许数据败坏 异常安全函数提供以下三个保证之一: 1.基本承诺:如果异常被抛出,程序内的任何事物仍然保持在有效的状态下。没有任何对象或数据结构会因此而败坏,所有对象都处于一种内部前后一致的状态。 2.强烈保证:如果异常被抛出,程序状态不改变.调用这样的函数需有这样的认知:如果函数成功,就是完全成功,如果函数失败,程序... 阅读全文
posted @ 2013-10-23 09:21 CrazyCode. 阅读(215) 评论(0) 推荐(0) 编辑