引出
Bulk_quote bulk;
cout <<bulk.isbn()<<endl;
靜態類型決定由誰開始向上搜索
Quote是Disc_quote的父親,Disc_quote是Bulk_quote的父親。
在Disc_quote中加入以下函數。
給出以下示例:bulkP從孫子代開始搜索,itemP從基類開始搜索。
再次澄清名字查找規則
549頁
首先確定靜態類型(就是=左邊),從底層向頂層找直到找到。
如果是虛函數,則運行時決定,依賴動態類型(就是=右邊); 不是虛函數,就是常規調用
引出覆蓋和隱藏
普通函數隱藏
普通函數只要函數名字相同,就是隱藏;虛函數名字相同但形參列表不同,纔是隱藏。
虛函數覆蓋
只有形參列表和函數名相同才叫覆蓋。一般返回值類型也要相同啊,只有一個小例外,否則視爲獨立函數。
調用:先根據靜態類型查找,然後如果是虛函數就再看動態類型。