虛函數(shù)的作用和原理 虛函數(shù)怎么實現(xiàn)多態(tài)?
虛函數(shù)怎么實現(xiàn)多態(tài)?實現(xiàn)多態(tài)性的方法如下:1按基類聲明虛函數(shù);2按子類重新定義基類聲明的虛函數(shù);3按程序中的基類對象引用或指針調用虛函數(shù)。C 中怎么用多態(tài)實現(xiàn)函數(shù)的多變參數(shù)?最簡單的方法是將函數(shù)指針
虛函數(shù)怎么實現(xiàn)多態(tài)?
實現(xiàn)多態(tài)性的方法如下:
1按基類聲明虛函數(shù);
2按子類重新定義基類聲明的虛函數(shù);
3按程序中的基類對象引用或指針調用虛函數(shù)。
C 中怎么用多態(tài)實現(xiàn)函數(shù)的多變參數(shù)?
最簡單的方法是將函數(shù)指針存儲在結構中,然后在初始化結構時將函數(shù)的地址分配給它。如果稍微復雜一點的話,我們就要用虛函數(shù)表(其實記錄函數(shù)名對應的函數(shù)地址是好的)根據(jù)C的多態(tài)性原理記錄每個結構的成員函數(shù)地址,然后在每個結構中多存儲一個虛函數(shù)表的地址。。。然后在調用函數(shù)時,函數(shù)地址被強烈轉換為函數(shù)類型,然后被調用。你可以自己研究C的虛函數(shù)表機制。
寫一段代碼,說明多態(tài)的工作原理?
多態(tài)性主要體現(xiàn)在虛函數(shù)的調用上。在C語言中,虛函數(shù)的調用使用動態(tài)綁定。有人說它是后期綁定,也就是說,要調用的函數(shù)只有在程序運行時才決定。例如:類bird{public:virtualvoid fly(){cout fly()bird*birdtwo=new chicken()birdtwo->fly()bird birdthree三只蒼蠅()}結果是鴨會飛雞會飛鳥會飛,這是虛函數(shù)的函數(shù),反映了多態(tài)性