失踪';'之前'*'

失踪';'之前'*'

问题描述:

我已经看了很多“失踪”;“之前'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

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

这简直就是一个我非常愚蠢的例子。

问题出在我定义的函数具有与我预先定义的实际类型相同的接口名称。

这条线:

Animation*  Animation   (int pIndex); 

我已经清楚,正确,调用此函数“动画”,并解决因为我已经把它命名问题:

Animation*  GetAnimation   (int pIndex); 

对不起,浪费别人的时间。

+3

有一个答案已经说明。你应该接受它(标记答案左侧的勾号),而不是张贴你自己说的完全一样的东西。 – 2012-07-18 16:01:33

+0

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