2011-11-22 81 views
0

我在SDL中制作游戏,并使用位图分配对象,我想尝试静态,但是出现声明不兼容的错误。我错过了什么?SDL_Loadbitmap作为类中的静态成员

我的课CPP

SDL_Surface Enemy::sprite = SDL_LoadBMP("ship.bmp"); 

我的H级

class Enemy 
{ 
    public: 
    static SDL_Surface *sprite; 
}; 
+1

您的定义缺少'*'。 – user786653

+0

SDL_LoadBMP返回一个地址,因此我需要sprite而不是* sprite –

回答

1

正如user786653指出的那样,你缺少在声明中星号,

SDL_Surface* Enemy::sprite = SDL_LoadBMP("ship.bmp"); 

应该是正确的。因此,类头文件中的变量类型是指向SDL_Surface的指针,但是cpp文件中的静态声明适用于直接的SDL_Surface。