2016-12-08 2 views
-3

C++에서 매우 기본적인 질문이 있습니다. if() 함수는 login() 함수를 호출하여 컴파일 할 때 오류가 발생합니다.조건부 호출시 오류가 발생했습니다.

 #include<iostream> 
    #include<iomanip> 
    #include<string> 
    using namespace std; 

    void login(); 

    int main() { 
     string login; 
     int passcode; 

     cout << "login "; 
     cin >> login; 

     cout << "passcode "; 
     cin >> passcode; 


     if(login == "admin" && passcode == 123) { 
      login(); 
     } 

     else { 
      cout << "It's not the Correct Passcode "; 
     } 

     return 0; 
     system("pause"); 
    } // main() 

    void login() { 
     cout << "You've successfully Logged into the Software "; 
     return ; 
    } 
+1

그리고 컴파일 오류가 무엇입니까? –

+1

이름 충돌이 있습니다 : 변수'login' 대 함수'login()' – alexeykuzmin0

+2

나중에 컴파일러 오류를주의 깊게 읽으십시오. 오류에 대해 분명히 말합니다. 아직도 붙어 있다면, 오류는 SO 질문의 텍스트에 포함되어야합니다 – alexeykuzmin0

답변

4

이름 충돌이 있습니다.

login()은 함수 이름입니다.

그러나 loginstd::string의 인스턴스입니다.

클래스가 오버로드() 연산자 일 수 있기 때문에 컴파일러는이를 잠재적 인 모호성으로 표시하고 오류를 내 보냅니다.

은 (함수로 가장 개체 인스턴스가 함수 객체라고합니다 - 매우 유용한 동물, 특히 C++ 11 전에, 참으로.)

관련 문제