《Effective C++》学习笔记条款33 避免遮掩继承而来的名称

2014-11-24 07:33:44 · 作者: · 浏览: 0

条款33:避免遮掩继承而来的名称
C++的名称遮掩规则所做的唯一事情就是:遮掩名称。至于名称是否是相同或不同

的类型,并不重要。即,只要名称相同就覆盖基类相应的成员,不管是类型,参数个

数,都无关紧要。派生类的作用域嵌套在基类的作用域内。
C++的继承关系的遮掩名称也并不管成员函数是纯虚函数,非纯虚函数或非虚函数

等。只和名称有关。
如果你真的需要用到基类的被名称遮掩的函数,可以使用using声明式,引入基类的

成员函数。

请记住:

derived calsses内的名称会遮掩base classes内的名称。在public继承下从来没有人希

望如此。

为了让被遮掩的名称再见天日,可使用using声明式或转交函数

(forwarding function)。