函數重載和虛函數在概念上和使用上的區別


1.函數重載可以用於非成員函數和類的成員函數,而虛函數只能用於類的成員函數

2.函數重載可用於構造函數,而虛函數不能用於構造函數

3.如果對成員函數進行重載,重載的函數與被重載的函數應該是用一個類中的成員函數,不能分屬於兩個不同繼承層次的類,函數重載處理的是橫向的重載。虛函數是對同一類族中的基類和派生類的同名函數的處理,即允許在派生類中對基類的成員函數重新定義。虛函數處理的是縱向的同名函數。

4.重載的函數必須具有相同的函數名,函數類型可以相同也可以不同,但函數的參數個數和參數類型二者中至少有一個不同,否則在編譯時無法區分。而虛函數則要求同一類族中的所有虛函數的函數名,函數類型,函數的參數個數和參數類型都全部相同,否則就不是重定義了,也就不是虛函數了

5.函數重載是在程序編譯階段確定操作的對象的,屬於靜態關聯。虛函數是在程序運行階段確定操作對象的,屬於動態關聯。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM