您的位置:首页 > 其它

条款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一样表现出莫名其妙的行为。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  pointers class
相关文章推荐