重載(overloading)和重寫(overriding)都是面向對象編程中的概念,但是它們有不同的含義和用法。
重載(overloading)是指在同一個作用域內使用相同的函數名,但是參數列表不同的多個函數,這些函數稱為重載函數。在C++中,函數的重載是靜態多態性的一種表現。編譯器在編譯時會根據調用函數時的參數列表來確定要調用的函數。重載函數可以有不同的返回類型,但是不能只有返回類型不同而參數列表相同。
重寫(overriding)是指在派生類中重新定義基類中已經定義的虛函數(或者基類中的純虛函數)。重寫函數必須和基類函數具有相同的函數簽名(函數名和參數列表),并且必須是虛函數。重寫函數可以有不同的實現,但是必須具有相同的函數簽名。
總結來說,重載是在同一個類中定義多個同名函數,根據參數列表的不同來區分調用;而重寫是在派生類中重新定義基類中的虛函數,實現多態性。