Có thể định nghĩa nhiều hàm cùng tên trong cùng phạm vi nếu danh sách tham số khác nhau (kiểu hoặc số lượng). Không thể nạp chồng chỉ khác kiểu trả về.
Nạp chồng hàm là đa hình lúc biên dịch. Kiểm tra chữ ký hàm (signature). Kiểu trả về không ảnh hưởng đến nạp chồng.
Ví dụ
#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() {
printData pd;
pd.print(5);
pd.print(500.263);
pd.print("Hello C++");
return 0;
}
Kết quả
Printing int: 5 Printing float: 500.263 Printing character: Hello C++