继承中的类作用域

引出

Bulk_quote bulk;
cout <

继承中的类作用域_第1张图片

静态类型决定由谁开始向上搜索

Quote是Disc_quote的父亲,Disc_quote是Bulk_quote的父亲。

在Disc_quote中加入以下函数。

继承中的类作用域_第2张图片

给出以下示例:bulkP从孙子代开始搜索,itemP从基类开始搜索。

继承中的类作用域_第3张图片

再次澄清名字查找规则

549页
首先确定静态类型(就是=左边),从底层向顶层找直到找到。
如果是虚函数,则运行时决定,依赖动态类型(就是=右边); 不是虚函数,就是常规调用

引出覆盖和隐藏

普通函数隐藏

普通函数只要函数名字相同,就是隐藏;虚函数名字相同但形参列表不同,才是隐藏。

继承中的类作用域_第4张图片

虚函数覆盖

只有形参列表和函数名相同才叫覆盖。一般返回值类型也要相同啊,只有一个小例外,否则视为独立函数。

继承中的类作用域_第5张图片

调用:先根据静态类型查找,然后如果是虚函数就再看动态类型。

继承中的类作用域_第6张图片

你可能感兴趣的:(C++语言)