1.函數重載可以用於非成員函數和類的成員函數,而虛函數只能用於類的成員函數
2.函數重載可用於構造函數,而虛函數不能用於構造函數
3.如果對成員函數進行重載,重載的函數與被重載的函數應該是用一個類中的成員函數,不能分屬於兩個不同繼承層次的類,函數重載處理的是橫向的重載。虛函數是對同一類族中的基類和派生類的同名函數的處理,即允許在派生類中對基類的成員函數重新定義。虛函數處理的是縱向的同名函數。
4.重載的函數必須具有相同的函數名,函數類型可以相同也可以不同,但函數的參數個數和參數類型二者中至少有一個不同,否則在編譯時無法區分。而虛函數則要求同一類族中的所有虛函數的函數名,函數類型,函數的參數個數和參數類型都全部相同,否則就不是重定義了,也就不是虛函數了
5.函數重載是在程序編譯階段確定操作的對象的,屬於靜態關聯。虛函數是在程序運行階段確定操作對象的,屬於動態關聯。
