Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

main() สามารถ overload ได้หรือไม่ใน C++?

C++ ไม่อนุญาต ให้ overload ฟังก์ชัน main() ที่ระดับ global จะเกิด compile error (conflicting declarations)

ตัวอย่างที่ Error

int main(int x) { ... }
int main(char* y) { ... }
int main(int x, int y) { ... }
int main() { main(10); main("Hello"); main(15,25); } // Error: multiple definitions of main

วิธีแก้: ใช้เป็น Member Function ของ Class

main ไม่ใช่ reserved keyword ใน C++ (ต่างจาก C) จึงใช้เป็นชื่อ method ได้

class MyClass {
public:
    int main(int x) { cout << "x: " << x; return 0; }
    int main(char* y) { cout << "y: " << y; return 0; }
    int main(int x, int y) { cout << x << ", " << y; return 0; }
};

int main() {
    MyClass obj;
    obj.main(10);
    obj.main("Hello");
    obj.main(15, 25);
}

ผลลัพธ์

Value of x: 10
Value of string y: Hello
Value of x and y: 15, 25