条款39:明智而审慎地使用private继承
2010-03-25 16:52
330 查看
private继承其实意味着implemented-in-terms-of(根据某物实现出)。如果你写的class Derived以private继承自class Base,你的用意是为了让 Dervived类采用到Base类中的某些特性,而不是因Dervied对象与Base对象存在一些观念上的关系。
关于is-implemented-in-term-of(根据某物来实现),尽可能使用复合,必要时才使用private继承。主要就是当protected成员或virtual函数牵扯进来的时候。
另外,涉及 space optimization的极端情况可能会使你倾向于 private inheritance,而不是 composition。
关于is-implemented-in-term-of(根据某物来实现),尽可能使用复合,必要时才使用private继承。主要就是当protected成员或virtual函数牵扯进来的时候。
//"private"解决 class Widget: private Timer { private: virtual void onTick() const; // look at Widget usage data, etc. ... }; //"复合"解决 class Widget { private: class WidgetTimer: public Timer { public: virtual void onTick() const; ... }; WidgetTimer timer; ... };
另外,涉及 space optimization的极端情况可能会使你倾向于 private inheritance,而不是 composition。
//sizeof(HoldsAnInt) >sizeof(int);一个 Empty data member需要存储。对以大多数编译器,sizeof(Empty) 是 1 class Empty {}; // has no data, so objects should use no memory class HoldsAnInt { // should need only space for an int private: int x; Empty e; // should require no memory }; // sizeof(HoldsAnInt) == sizeof(int) class HoldsAnInt: private Empty { private: int x; };
相关文章推荐
- Effective C++:条款39:明智而审慎地使用private继承
- Effective C++ 条款39 明智而审慎地使用private继承
- Effective C++:条款39:明智而审慎地使用private继承
- 条款39:明智而审慎地使用private继承
- Effective C++ -----条款39:明智而审慎地使用private继承
- 条款39:明智而审慎地使用private继承
- 条款39:明智而审慎的使用private继承
- [Effective C++笔记]条款39:明智而审慎地使用private继承
- 条款39:明智而审慎的使用private继承
- effective C++ 条款 39:明智而审慎地使用private继承
- [effectiv c++]条款39:明智而审慎地使用private继承
- 条款39:明智而审慎地使用private继承(use private inheritance judiciously)
- 条款39、明智审慎地使用private继承
- 条款39:明智而审慎的适用private继承
- C++之明智审慎地使用private继承(39)---《Effective C++》
- 《Effective C++》读书笔记之item39:明智而审慎地使用private继承
- 条款39:明智的使用private继承
- Effective C++ Item 39 明智而审慎地使用 private 继承
- 读书笔记_Effective_C++_条款三十九:明智而审慎地使用private继承
- 明智而审慎的使用private继承