2017-11-30 7 views
0

클래스를 사용하여 C++에서 컴파일 오류가 발생했습니다. 전에 수업에서 일해 본 적이 없으며이 오류가 발생하지도 않았습니다. 메서드를 ImprtData 전에 정적 추가 시도했다 그러나 그 경우에만 더 많은 오류 메시지가 나타납니다.C++ 컴파일 오류

error: invalid use of non-static member function bank.ImprtData; 

여기 내 .CPP

여기
#include "componets.h" 

User::User() { 
std::cout << "loaded" << std::endl; 
} 

void User::ImprtData() { 

    std::cout << "loaded.\n"; 
} 

내 .H

#include <sstream> 
#include <fstream> 
#include <vector> 
#include <iostream> 
#include <string> 

class User { 
    public: 
      User(); 
      void write(); 
      void launch_main_menu(); 
      void login(); 
      void ImprtData(); 
    private: 
      void deposit(); 
      void withdrawl(); 
      std::string account_name; 
      int account_pin; 
      float account_balance; 
      std::string account_user_name; 
}; 

이며, 이것은 본질적으로 단순한 오타입니다

#include "componets.h" 

int main() { 
    std::cout << "Welcome to Bank 111.\n"; 
    User bank; 
    bank.ImprtData; 

    return 0; 
} 
+0

이어야합니다. "componets.h"가 맞습니까? 어쩌면'components.h'. 예제에 파일 이름을 추가하십시오. 나는. 당신은 쓸 수 있습니다. 여기에 내'componets.h'입니다. " – o3o

답변

1

결국 내 주요이다.

bank.ImprtData(); 

기능 호출 에 함께

bank.ImprtData; 

교체합니다. bank.ImprtData이라는 표현식은 함수의 주소로 해석하므로 컴파일러를 혼란스럽게하고 함수가 static이 아니기 때문에 진단을 실행합니다.

+1

단순한 오타 인 경우 닫으려고하고 주석을 추가하십시오. –

+0

@FantasticMrFox : 아니요, 답변은 답변 섹션에 작성해야합니다. 그리고 질문이 충분히 잘 쓰여진 경우 -이 질문은 무시 무시한 제목을 제외하고 - 컴파일러 진단을 참조하여 대답 할 수 있습니다. – Bathsheba

0

bank.ImprtData;bank.ImprtData();