Không thể nạp chồng main() ở phạm vi toàn cục. Compiler sẽ báo lỗi redefinition/conflict.
Ví dụ sai
int main(int x) { ... }
int main(char* y) { ... } // LỖI: multiple definitions of main
Giải pháp: làm hàm thành viên của class
main không phải từ khóa reserved trong C++, có thể dùng làm tên hàm thành viên.
class MyClass {
public:
int main(int x) { cout << x; return 0; }
int main(char* s) { cout << s; return 0; }
};
int main() {
MyClass obj;
obj.main(10);
obj.main("Hello");
}Kết quả
10 Hello