Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 main()을 오버로드할 수 있습니까?

<시간/>

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() 함수를 극복하기 위해 클래스 멤버로 사용할 수 있습니다. 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