条款36:绝对不要重新定义继承而来的non-virtual函数
2010-03-19 17:15
225 查看
class b { public: void mf(); ... }; class d: public b { public: void mf(); // hides b::mf; see item33 ... };
如果你在编写 class d 而且你重定义了一个你从 class b 继承到的非虚拟函数mf,d
的objects将很可能表现出不协调的行为。特别是,当 mf 被调用时,任何给定的 d 对象的行为既可能像 b 也可能像
d,而且决定因素与对象本身无关,但是和指向它的 pointer的声明类型有关。references也会像
pointers一样表现出莫名其妙的行为。
相关文章推荐
- 条款36:绝对不要重新定义继承而来的non-virtual函数
- 条款36:绝对不要重新定义,继承而来的non-virtual函数
- Effective C++读书笔记一 条款36 绝对不要重新定义public继承来的non-virtual函数
- 绝对不要重新定义继承而来的non-virtual函数(Effective C++_36)
- Effective C++:条款36:绝不重新定义继承而来的non-virtual函数
- 读书笔记《Effective C++》条款36:绝不重新定义继承而来的non-virtual函数
- Effective C++条款36解读: 绝不重新定义继承而来的non-virtual函数
- Effective C++ 条款36 绝不重新定义继承而来的non-virtual函数
- 条款36:绝不重新定义继承而来的non-virtual函数(Never redefine an inherited non-virtual function)
- Effective C++ -----条款36:绝不重新定义继承而来的non-virtual函数
- 条款36:绝不重新定义继承而来的non-virtual函数
- 条款36:绝不重新定义继承而来的non-virtual函数
- effective C++ 条款 36:绝不重新定义继承而来的non-virtual函数
- 条款36:决不重新定义继承而来的non-virtual函数
- [条款36]绝不重新定义继承而来的non-virtual函数
- 条款36:绝不重定义继承而来的non-virtual函数
- c++:不要重新定义继承而来的non-virtual函数
- 读书笔记_Effective_C++_条款三十六:绝不重新定义继承而来的non-virtual函数
- effective C++笔记之条款36、37: 区分接口继承和实现继承、绝不要重新定义继承而来的非虚函数
- [EffectiveC++]item36:绝不重新定义继承而来的non-virtual函数