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

main() สามารถโอเวอร์โหลดใน C ++ ได้หรือไม่


ใน C ++ เราสามารถใช้ฟังก์ชันโอเวอร์โหลดได้ ทีนี้คำถามก็ผุดขึ้นในใจว่า เราสามารถโอเวอร์โหลดฟังก์ชัน main() ได้ด้วยหรือไม่

ให้เราดูโปรแกรมหนึ่งเพื่อให้ได้แนวคิด

ตัวอย่าง

#include <iostream>
using namespace std;
int main(int x) {
   cout << "Value of x: " << x << "\n";
   return 0;
}
int main(char *y) {
   cout << "Value of string y: " << y << "\n";
   return 0;
}
int main(int x, int y) {
   cout << "Value of x and y: " << x << ", " << y << "\n";
   return 0;
}
int main() {
   main(10);
   main("Hello");
   main(15, 25);
}

ผลลัพธ์

This will generate some errors. It will say there are some conflict in declaration of main() function

เพื่อเอาชนะฟังก์ชั่น main() เราสามารถใช้พวกมันเป็นสมาชิกคลาสได้ คีย์เวิร์ดหลักไม่ใช่คีย์เวิร์ดที่จำกัดการใช้งาน เช่น C ใน C++

ตัวอย่าง

#include <iostream>
using namespace std;
class my_class {
   public:
      int main(int x) {
         cout << "Value of x: " << x << "\n";
         return 0;
      }
      int main(char *y) {
         cout << "Value of string y: " << y << "\n";
         return 0;
      }
      int main(int x, int y) {
         cout << "Value of x and y: " << x << ", " << y << "\n";
         return 0;
      }      
};
int main() {
   my_class 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