c++多態(tài)的實(shí)現(xiàn)方式 如何用c語(yǔ)言實(shí)現(xiàn)多態(tài)?
如何用c語(yǔ)言實(shí)現(xiàn)多態(tài)?最簡(jiǎn)單的方法是將函數(shù)指針存儲(chǔ)在結(jié)構(gòu)中,然后在初始化結(jié)構(gòu)時(shí)將函數(shù)的地址分配給它。如果稍微復(fù)雜一點(diǎn)的話,我們就要用虛函數(shù)表(其實(shí)記錄函數(shù)名對(duì)應(yīng)的函數(shù)地址是好的)根據(jù)C的多態(tài)性原理記錄
如何用c語(yǔ)言實(shí)現(xiàn)多態(tài)?
最簡(jiǎn)單的方法是將函數(shù)指針存儲(chǔ)在結(jié)構(gòu)中,然后在初始化結(jié)構(gòu)時(shí)將函數(shù)的地址分配給它。如果稍微復(fù)雜一點(diǎn)的話,我們就要用虛函數(shù)表(其實(shí)記錄函數(shù)名對(duì)應(yīng)的函數(shù)地址是好的)根據(jù)C的多態(tài)性原理記錄每個(gè)結(jié)構(gòu)的成員函數(shù)地址,然后在每個(gè)結(jié)構(gòu)中多存儲(chǔ)一個(gè)虛函數(shù)表的地址。。。然后在調(diào)用函數(shù)時(shí),函數(shù)地址被強(qiáng)烈轉(zhuǎn)換為函數(shù)類型,然后被調(diào)用。你可以自己研究C的虛函數(shù)表機(jī)制。
如何實(shí)現(xiàn)C語(yǔ)言的多態(tài)?
你好,我是[最大的敵人戰(zhàn)勝自己]。我很高興為你回答。C、 實(shí)現(xiàn)多態(tài)性的方法有:虛函數(shù)、抽象類、覆蓋、模板(重載和多態(tài)無(wú)關(guān))。虛函數(shù)是指在基類中聲明為虛并在一個(gè)或多個(gè)派生類中重新定義的成員函數(shù)。用法格式為:virtual function返回type function name(parameter table){function body};要實(shí)現(xiàn)多態(tài)性,可以通過指向派生類的基類指針或引用來訪問派生類中包含相同名稱的成員函數(shù)。為了使類是抽象的,C必須至少有一個(gè)純虛函數(shù)。包含至少一個(gè)純虛函數(shù)的類被認(rèn)為是抽象類。比較專業(yè)的理科知識(shí),歡迎關(guān)注我。如果你喜歡我的回答,也請(qǐng)給我表?yè)P(yáng)或轉(zhuǎn)發(fā),你的鼓勵(lì)是支持我寫下來的動(dòng)力,謝謝。