Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Có thể nạp chồng hàm main() trong C++ không?


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