mirror of
https://github.com/huihut/interview.git
synced 2024-03-22 13:10:48 +08:00
更新 Effective C++
This commit is contained in:
parent
2d6f80ee87
commit
caf057f489
|
@ -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 interface(NVI)手法,将 virtual 函数替换为 “函数指针成员变量”,以 `tr1::function` 成员变量替换 virtual 函数,将继承体系内的 virtual 函数替换为另一个继承体系内的 virtual 函数)
|
||||||
|
36. 绝不重新定义继承而来的 non-virtual 函数
|
||||||
|
37. 绝不重新定义继承而来的缺省参数值,因为缺省参数值是静态绑定(statically bound),而 virtual 函数却是动态绑定(dynamically bound)
|
||||||
|
|
||||||
### Google C++ Style Guide
|
### Google C++ Style Guide
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user