复合方式(composition)和 private继承, 都能表示, 根据某个类实现出新的类的形式, 即通过使用protected成员, 和重写virtual函数.
优先选择复合方式. 原因:
1. 复合方式, 可以实现重写virtual函数, 然后阻止派生类重新定义virtual函数;
2. 可以使Widget的编译依存度降至最低, 即只包含类的声明式(复合), 而避免包含基类的头文件(继承);
例外: private继承, 可以使EBO(空白基类最优化), 在某些空白基类的情况下很重要, 不过很少出现. 所以优先复合.
更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/cplus/
时间: 2024-10-26 22:22:18