继承中的类作用域

引出

Bulk_quote bulk;
cout <<bulk.isbn()<<endl;

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

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

在Disc_quote中加入以下函数。

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

再次澄清名字查找规则

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

引出覆盖和隐藏

普通函数隐藏

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

虚函数覆盖

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

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章