C++覆蓋與重載

C++中覆蓋和重載經常是初學者感到很困惑的地方。
重載是一個編譯時的概念。它是用來區別帶不同參數(參數的類型,數量,順序)的同名函數的工具。如果聲明瞭同名函數,編譯器會在執行時根據參數來確定調用哪一個。重載不會涉及任何成員的改變。它是一個強大的工具,它允許程序員在輸入不同數據的情況下,使用同名的函數來完成類似的任務。而且重載只用於函數,不用於類,大部分使用的重載函數都是成員函數。
覆蓋是運行時的概念,它在運行時從一組被覆蓋的函數中選擇一個函數。覆蓋允許派生類的實現者所使用的接口與基類的接口一致,但是各自的實現方法不同。通過覆蓋,使用的是對象所實現的正確方法,而不是調用接口所使用的實現方法。覆蓋基於單個函數。覆蓋意味着繼承,沒有繼承,就不存在覆蓋,

總體來說,重載是在編譯過程中在各個同名函數中選擇使用哪個函數來執行,而覆蓋是在運行時從一組被覆蓋的函數中選擇一個函數。即選擇和判斷的關係。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章