2014-03-29 2 views
0

Eclipse에 다음과 같이 말합니다. 토큰 '{'앞에는 함수 정의가 허용되지 않습니다. (구현 행에서)클래스 정의에 구문 오류가 발생했습니다.

무엇이 누락 되었습니까?

#include <iostream> 
using namespace std; 

int main(){ 

    class MainButton { 
     int a; 
    public: 
     void pressed(); 
     void released(); 
    }; 

    void MainButton::pressed() { 
     cout<<"Button pressed"; 
    } 

    void MainButton::released(){ 
     cout<<"Button released"; 
    } 

    return 0; 
} 

답변

2

함수에 클래스를 정의하려고합니다 (이 경우 int main()). 클래스 정의를이 함수의 범위 밖으로 옮겨야합니다. & 구현이 주요 방법 밖에 있어야한다

+0

어리석은 나를 .............. –

0

클래스 정의 :

#include <iostream> 
using namespace std; 

class MainButton { 
    int a; 
public: 
    void pressed(); 
    void released(); 
}; 

void MainButton::pressed() { 
    cout<<"Button pressed"; 
} 

void MainButton::released(){ 
    cout<<"Button released"; 
} 

int main(){ 
    return 0; 
} 

클래스가 바로 주요 방법의 일부가 아니라 전체 프로그램은 (다른 기능에 액세스 할 수 있어야하기 때문이다). 그것을 사용하려면

, 당신은 할 수 :

int main(){ 
    MagicButton mb = new MagicButton(); 
    mb.pressed(); 
    return 0; 
} 
0

당신은 그런 식의 방법을 정의 할 수 없습니다.

main() 함수 내에서 pressed() 및 released() 메서드를 정의 할 수있는 유일한 방법은 클래스에 인라인 메서드를 정의하는 것입니다. 다른 옵션은 클래스의 전체 정의를 주요 함수() 외부로 이동하는 것입니다.

관련 문제