C++-এ main() ফাংশন ওভারলোড করা সম্ভব নয়। প্রোগ্রামের এন্ট্রি পয়েন্ট শুধু একটি main() হতে পারে। একাধিক main() ডিক্লেয়ার করলে কম্পাইলেশন এরর হয়।
ভুল উদাহরণ
int main(int x) { ... }
int main(char* y) { ... }
int main(int x, int y) { ... }
int main() { ... } // Error: multiple definitions of main
সমাধান: ক্লাস মেম্বার ফাংশন হিসেবে main() ব্যবহার
main সি++-এ রিজার্ভড কীওয়ার্ড নয় (C-তে হলো)। তাই ক্লাস মেম্বার ফাংশন হিসেবে নাম দিয়ে ওভারলোড করা যায়।
#include <iostream>
using namespace std;
class MyClass {
public:
int main(int x) { cout << "x: " << x << endl; return 0; }
int main(char* y) { cout << "y: " << y << endl; return 0; }
int main(int x, int y) { cout << "x,y: " << x << "," << y << endl; return 0; }
};
int main() {
MyClass obj;
obj.main(10);
obj.main("Hello");
obj.main(15, 25);
return 0;
}
আউটপুট
x: 10 y: Hello x,y: 15, 25
দ্রষ্টব্য: গ্লোবাল main() শুধু একটা থাকতে পারে। ক্লাস মেম্বার হিসেবে যেকোনো নাম ব্যবহার করা যায়।