更新 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 对象)
33. 避免遮掩继承而来的名字(可使用 using 声明式或转交函数forwarding functions来让被遮掩的名字再见天日
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