C++Primer-继承中的类作用域
每个类定义自己的作用域,派生类作用域嵌套在基类内,如果一个名字在派生类作用域内无法解析,将继续在外层的基类作用域中寻找
在内层作用域的名字可以隐藏外层作用域的名字,可以使用作用域运算符来抵消隐藏
名字查找发生在类型检查之前
通过基类调用隐藏的虚函数
程序执行的顺序是名字查找、类型检查、虚函数匹配/直接调用
虚函数要有相同的名字和形参列表,否则就会发生函数名字的隐藏
如果派生类没有进行虚函数覆盖,调用时会执行基类的版本,但是如果由于隐藏导致名字查找阶段出现异常,就不会进行到虚函数匹配的阶段了
覆盖重载的函数
无论是否是虚函数,类的成员函数都可以被重载,派生类也可以选择覆盖哪些重载的函数,可以使用using+作用域运算符进行标记,从而避免繁琐