2012-07-18 66 views
0

我已經看了很多「失蹤」;「之前'x'「的問題,但還沒有找到這個問題的答案。失蹤';'之前'*'

// ---- Define File ---- 

#ifndef AnimDefinition_h 
#define AnimDefinition_h 

// ---- Include ---- 

#include "AString.h" 
#include "FileReader.h" 

// ---- Global Constant Variables ---- 

static const int MaxAnimations = 16; 
static const int Blank   = 10; 
static const int EndOfLine  = 59; 
static const int Space   = 32; 

// ---------------------------------------------------------------- 
//      Sprite Animation Definition      
// ---------------------------------------------------------------- 
class AnimDefinition 
{ 
private: 

    struct Animation 
    { 
     AString  mAnimationID; 
     AString  mLoopTo; 
     int   mFrameBegin; 
     int   mFrameEnd; 
    }; 

public: 

        AnimDefinition   (void); 
        AnimDefinition   (const char *pFileName); 
        ~AnimDefinition   (void); 

    void   ReadFile    (); 

    Animation*  Animation    (int pIndex); 
    Animation*  Animation    (const char *pFileName); // The first incident of this error occurs here 

private: 

    const char  *Scan     (char *pSource, int &pCounter); 

private: 

    AString   mDefinitionID; 
    FileReader  mFileReader; 
    Animation  *mAnimations[MaxAnimations]; 

    int    mNumberAnimations; 
}; 

// ---- End Definition ---- 

#endif // AnimDefinition_h 

如上所述,與我打一個錯誤的第一行是

Animation*  Animation    (const char *pFileName); 

我已經證實,不被包括在任一「AString.h」 AnimDefinition或函數的定義「FileReader.h」。這些類別都不會在任何地方丟失分號。

任何幫助將是太棒了。

謝謝。

+0

你不能給方法一個與類相同的名字,否則它會與構造函數衝突。 – 2012-07-18 15:51:38

+0

'getAnimation'? – 2012-07-18 15:52:03

回答

7

Animation是一個struct名稱,不能用作函數名稱。剛剛重命名:

Animation* someOtherNameForGettingAnimation(int pIndex); 
+0

你可以,實際上。 – 2012-07-18 15:52:39

+0

@LuchianGrigore:舉例? – Andrew 2012-07-18 15:54:02

+0

沒關係,MSVS再次瘋狂:) – 2012-07-18 15:55:20

-3

這簡直就是一個我非常愚蠢的例子。

問題出在我定義的函數具有與我預先定義的實際類型相同的接口名稱。

這條線:

Animation*  Animation   (int pIndex); 

我已經清楚,正確,調用此函數「動畫」,並解決因爲我已經把它命名問題:

Animation*  GetAnimation   (int pIndex); 

對不起,浪費別人的時間。

+3

有一個答案已經說明。你應該接受它(標記答案左側的勾號),而不是張貼你自己說的完全一樣的東西。 – 2012-07-18 16:01:33

+0

我發佈了答案,而另一個人發佈了他的答案。 不需要侵略我的朋友。 – 2012-07-18 17:45:58