2014-09-18 169 views
0

所以我創建這個類包含一個字符串,類處理創建精靈設置他們的圖標等等,但我遇到了一個錯誤。字符串常量之前的預期標識符C++錯誤

下面是類代碼:

class staticmob{ 
public: 
    sf::Sprite icon; 
    sf::Texture iconTexture; 
    std::string object_name; 
    bool density = false; 


    staticmob(sf::Sprite mIcon, 
      std::string mName, 
      std::string fileName, 
       const bool dense, 
       bool inObjList, 
       turf *object_list); 

};

錯誤所在:

staticmob midGround(sf::Sprite midGround, 
       "Ground", 
       "tileset.png", 
       true, 
       true, 
       background); 

錯誤:

error: expected identifier before string constant 
error: expected ',' or '...' before string constant 

任何的幫助深表感謝(是的,我略低在C++新手,但我得到的竅門它)

+0

什麼是'midGround'咋辦至 是?你在兩個變量聲明中使用了它的名字? – 2014-09-18 21:45:48

+0

通過const引用傳遞非基本類型以避免副本。 – 2014-09-18 23:39:23

回答

0

你的錯誤是類似於如果你編譯你會看到:

void foo(int, int) {} 

int main() 
{ 
    foo(int i, 0); // "int i" is not an expression. It is not a declaration either. 
    return 0; 
} 

你需要的是沿着線的東西:

sf::Sprite midGroundSprit; 
staticmob midGround(midGroundSprite, 
        "Ground", 
        "tileset.png", 
        true, 
        true, 
        background); 
0

在您構建staticmob midGround,您重新聲明瞭第一個參數(sf :: Sprite part - 複製/粘貼錯誤?)的類型,並且在註釋中還有一個名稱衝突(是你想聲明的staticmob的midGround,還是sf :: Sprite實例?)假設midGroundSprite實際上是sf :: Sprite的名稱,這樣的事情應該可以工作:

staticmob midGroundMob(midGroundSprite, "Ground", ... etc.) 
相關問題