2012-06-11 7 views
1

사용자 (마우스/키보드 데이터)의 입력 상태를 유지하는 단일 클래스를 작성하려고합니다.Uint8 - 누락 유형 지정자

error C2143: syntax error : missing ';' before '*' 

error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 

나는 데이터 유형으로 UINT8을 사용했습니다 다음 SDL API 내가 UINT8 포인터를 만들려고하는 이유, 내가 승 UINT8/라인에서 이러한 오류를 얻을 그러나 UINT8 포인터 배열로 키보드 데이터를 반환 이전에는 정의하지 않았으므로 여기서 어떤 문제가 발생하는지 확신 할 수 없습니다.

class InputState { 
public: 

    InputState() 
    {}; 
    ~InputState() 
    {}; 


    static InputState *getInputState(void) 
    { 
     static InputState *state = new InputState(); 

     return state; 
    }; 

public: 
    Uint8 *keys; 

    struct MouseState 
    { 
     int LeftButtonDown; 
     int RightButtonDown; 
     int MiddleButtonDown; 

     int x; 
     int y; 

     MouseState() 
     { 
      LeftButtonDown = 0; 
      RightButtonDown = 0; 
      MiddleButtonDown = 0; 

      x = 0; 
      y = 0; 
     } 
    }; 

    MouseState *mouseState; 
}; 
+2

'Uint8'을 정의하는 _ 무엇이든 SDL header_를 포함 시켰습니까? 제발 제발 부탁하지 마세요 _ 키워드. ... –

+0

사과, 나는 질문을 편집했습니다. SDL 또는 다른 정의가 어디서 왔는지는 확실하지 않습니다. 검사로서 Uint8 w/o 오류를 사용하는 이전 파일로 돌아가서 행운을 잃지 않고 모든 동일한 헤더 파일을 포함했습니다. – Donutfiend84

+0

사이드 노트 : 싱글 톤 클래스를 사용하면 생성자를 private으로 설정해야합니다. 두 번째 [정말로 싱글 톤을 원한다는 것을 확인하십시오.] (http://en.wikipedia.org/wiki/Singleton_pattern#Drawbacks) – Shahbaz

답변

1

유형 Uint8SDL 헤더 중 하나에 정의 된 형식 정의입니다 : 여기 내 코드입니다. 이 파일을 사용하려면 파일에 SDL.h 헤더를 포함시켜야합니다.

// You need this include if you want to use SDL typedefs 
#include <SDL.h> 

class InputState { 
public: 

    InputState() 
    {}; 
    ~InputState() 
    {}; 

    // ... 

public: 
    Uint8 *keys; 

    // ... 
}; 
+0

그게 그랬어. Uints가 기본 데이터 유형이라는 인상하에있었습니다. 감사. – Donutfiend84

+1

@ Donutfiend84,'uint8_t'는''의 일부입니다. – chris

관련 문제