更新 Effective C++

This commit is contained in:
huihut 2018-10-18 19:04:04 +08:00
parent 2d6f80ee87
commit caf057f489

View File

@ -1194,6 +1194,9 @@ class doSomething(Flyable *obj) // 做些事情
32. 确定你的 public 继承塑模出 is-a 关系(适用于 base classes 身上的每一件事情一定适用于 derived classes 身上,因为每一个 derived class 对象也都是一个 base class 对象) 32. 确定你的 public 继承塑模出 is-a 关系(适用于 base classes 身上的每一件事情一定适用于 derived classes 身上,因为每一个 derived class 对象也都是一个 base class 对象)
33. 避免遮掩继承而来的名字(可使用 using 声明式或转交函数forwarding functions来让被遮掩的名字再见天日 33. 避免遮掩继承而来的名字(可使用 using 声明式或转交函数forwarding functions来让被遮掩的名字再见天日
34. 区分接口继承和实现继承(在 public 继承之下derived classes 总是继承 base class 的接口pure virtual 函数只具体指定接口继承;非纯 impure virtual 函数具体指定接口继承及缺省实现继承non-virtual 函数具体指定接口继承以及强制性实现继承) 34. 区分接口继承和实现继承(在 public 继承之下derived classes 总是继承 base class 的接口pure virtual 函数只具体指定接口继承;非纯 impure virtual 函数具体指定接口继承及缺省实现继承non-virtual 函数具体指定接口继承以及强制性实现继承)
35. 考虑 virtual 函数以外的其他选择(如 Template Method 设计模式的 non-virtual interfaceNVI手法将 virtual 函数替换为 “函数指针成员变量”,以 `tr1::function` 成员变量替换 virtual 函数,将继承体系内的 virtual 函数替换为另一个继承体系内的 virtual 函数)
36. 绝不重新定义继承而来的 non-virtual 函数
37. 绝不重新定义继承而来的缺省参数值因为缺省参数值是静态绑定statically bound而 virtual 函数却是动态绑定dynamically bound
### Google C++ Style Guide ### Google C++ Style Guide