引出
Bulk_quote bulk;
cout <<bulk.isbn()<<endl;
静态类型决定由谁开始向上搜索
Quote是Disc_quote的父亲,Disc_quote是Bulk_quote的父亲。
在Disc_quote中加入以下函数。
给出以下示例:bulkP从孙子代开始搜索,itemP从基类开始搜索。
再次澄清名字查找规则
549页
首先确定静态类型(就是=左边),从底层向顶层找直到找到。
如果是虚函数,则运行时决定,依赖动态类型(就是=右边); 不是虚函数,就是常规调用
引出覆盖和隐藏
普通函数隐藏
普通函数只要函数名字相同,就是隐藏;虚函数名字相同但形参列表不同,才是隐藏。
虚函数覆盖
只有形参列表和函数名相同才叫覆盖。一般返回值类型也要相同啊,只有一个小例外,否则视为独立函数。
调用:先根据静态类型查找,然后如果是虚函数就再看动态类型。