虛函數(shù)
虛函數(shù)的種類:
非虛函數(shù)(non-virtual function)——普通函數(shù)
不希望繼承自其的子類對(duì)該函數(shù)覆寫(xiě)(override)
語(yǔ)法:<返回值><函數(shù)名>(參數(shù)表){函數(shù)體}
虛函數(shù)(virtual function)
希望繼承自其的子類中對(duì)該函數(shù)覆寫(xiě)(override)炒俱,但如果不重新定義际歼,也可以使用父類中的定義颤枪。
語(yǔ)法: virtual <返回值><函數(shù)名>(參數(shù)表){函數(shù)體}
純虛函數(shù)(pure virtual function)
希望同時(shí)也必須要在繼承自其的子類中重新定義該函數(shù),因?yàn)楦割愔兄幌喈?dāng)于一個(gè)接口模板嘿般,并沒(méi)有對(duì)其定義,如果子類中不重寫(xiě)會(huì)編譯出錯(cuò)。(常用作定義多人合作項(xiàng)目的功能接口嗡害,)
語(yǔ)法:virtual <返回值><函數(shù)名>(參數(shù)表)=0;
Template Method(一種使用虛函數(shù)的設(shè)計(jì)模式)
定義:
在父類的某函數(shù)執(zhí)行過(guò)程中畦攘,把某一關(guān)鍵點(diǎn)延緩到子類中實(shí)現(xiàn)霸妹。把用這種方式設(shè)計(jì)類(中函數(shù))的做法叫做Template Method
關(guān)鍵技術(shù):
Template Method 實(shí)現(xiàn)的關(guān)鍵技術(shù)在于:類成員函數(shù)都有一個(gè)隱藏的this指針作為參數(shù)。
多態(tài)
繼承要搭配虛函數(shù)使用才足夠強(qiáng)大