บทนำ
คุณสามารถมีการนิยามหลายอย่างสำหรับชื่อฟังก์ชันเดียวกันในขอบเขตเดียวกันได้ การนิยามต้องแตกต่างกันโดยชนิดและ/หรือจำนวนอาร์กิวเมนต์ในรายการอาร์กิวเมนต์ คุณไม่สามารถ overload ฟังก์ชันที่แตกต่างกันแค่ return type ได้
Function overloading คือ compile-time polymorphism มันตรวจสอบ function signature ถ้า signature ไม่เหมือนกัน สามารถ overload ได้ Return type ไม่สร้างผลต่อ function overloading signature เหมือนกันแต่ return type ต่างกัน จะไม่ถูก overload
ตัวอย่างโค้ด
#include <iostream>
using namespace std;
class printData {
public:
void print(int i) {
cout << "Printing int: " << i << endl;
}
void print(double f) {
cout << "Printing float: " << f << endl;
}
void print(char* c) {
cout << "Printing character: " << c << endl;
}
};
int main(void) {
printData pd;
pd.print(5);
pd.print(500.263);
pd.print("Hello C++");
return 0;
}
ผลลัพธ์
Printing int: 5 Printing float: 500.263 Printing character: Hello C++