1

我浏览了很多“失踪的';' 在'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);

我已经确认 AnimDefinition 没有包含在“AString.h”或“FileReader.h”中。这些类中的任何一个都没有在任何地方缺少分号。

任何帮助都会很棒。

谢谢。

4

2 回答 2

7

Animationstruct名称,不能用作函数名。只需重命名:

  Animation* someOtherNameForGettingAnimation(int pIndex);
于 2012-07-18T15:50:46.623 回答
-3

这只是我非常愚蠢的一个例子。

当我定义一个与我预定义的实际类型具有相同接口名称的函数时,就会出现问题。

这一行:

Animation*      Animation           (int pIndex);

我清楚地错误地将这个函数称为“动画”,为了解决我命名它的问题:

Animation*      GetAnimation            (int pIndex);

很抱歉浪费了任何人的时间。

于 2012-07-18T15:55:24.103 回答