題組內容
一、請回答以下對 C/C++程式語言的敘述正確與否?如果敘述是錯誤的,需說明正確敘
述為何。(每小題 3 分,共 30 分)
⑻當不同的物件收到相同的訊息時,會以各自的方法作處理的特點稱為多載 (Overloading)。
詳解 (共 3 筆)
詳解
False
多載是指名稱相同,但參數個數或型態不同的函數。
多載函數可使用於功能相近的函數,例如兩個函數名稱都是max,分別找出兩個整數最大者,及三個浮點數最大者
int max(int,int)
float max(float,float,float)
詳解
這個敘述是錯誤的。描述的特點實際上是指「多態性(Polymorphism)」,而不是「多載(Overloading)」。
在程式設計中,多態性是指允許不同類別的物件對相同的消息做出不同的響應。例如,在 C++ 中,這通常是通過使用虛函數(virtual functions)實現的,這允許派生類別重寫基類別的方法,並且當通過基類別的指針或引用調用時,執行適當的派生類別版本。
多載,另一方面,是指能夠讓多個函數或運算子有相同的名稱,但是參數的數量和/或類型不同,從而允許它們在不同的上下文中被呼叫。在 C++ 中,你可以多載函數和運算子。
所以正確的描述應該是:當不同的物件收到相同的訊息時,會以各自的方法作處理的特點稱為多態性。而多載是指同一個函數名稱或運算子用於不同參數列表的版本。
詳解
應稱為多形 ( Polymorphism )