标签:style blog http color 使用 os
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie
经验:private 继承意味 is-implemented-in-terms of。它通常比 composition 的级别低。
但是当 derived class 需要访问 protected base class 的成员,或需要重新定义继承而来的 virtual 函数时,这么设计是合理的class Empty{}; //这种 class 不带任何数据,没有 non-static 成员变量,没有 virtual 函数(因为这种函数的存在会为每个对象带来一个 vptr, Item 7), //也没有 virtual base classes (因为这样的 base classes 也会招致何种上的额外开销, Item 40) class HoldsAnInt{ private: int x; Empty e; }; int main(){ cout << sizeof(Empty) << " " << sizeof(HoldsAnInt) << endl;//32位机器输出:1 8 return 0; }
class HoldsAnInt : private Empty{ private: int x; } ; int main(){ cout << sizeof(Empty) << " " << sizeof(HoldsAnInt) << endl;//32位机器输出:1 4 return 0; }
Effective C++ Item 39 明智而审慎地使用 private 继承,布布扣,bubuko.com
Effective C++ Item 39 明智而审慎地使用 private 继承
标签:style blog http color 使用 os
原文地址:http://blog.csdn.net/zhengsenlie/article/details/37807261