0

DrawObjectコンストラクターを実行しているところですが、次のエラーが発生し続けます。

C:\CodeBlocks\SDLGame\DrawObject.cpp|3|error: no matching function for call to 'AnimationSet::AnimationSet()'|
C:\CodeBlocks\SDLGame\DrawObject.cpp|3|note: candidates are:|
C:\CodeBlocks\SDLGame\AnimationSet.h|9|note: AnimationSet::AnimationSet(int)|
C:\CodeBlocks\SDLGame\AnimationSet.h|9|note:   candidate expects 1 argument, 0 provided|
C:\CodeBlocks\SDLGame\AnimationSet.h|5|note: AnimationSet::AnimationSet(const AnimationSet&)|
C:\CodeBlocks\SDLGame\AnimationSet.h|5|note:   candidate expects 1 argument, 0 provided|

これは私のAnimationSetです:

class AnimationSet
{
    public:

        AnimationSet(int animationCounter);
        virtual ~AnimationSet();
        int getCurrentFrame();
        void setCurrentFrame(int currentFrame);
        int getCurrentAnimation();
        void setCurrentAnimation(int currentAnimation);

    private:

        int currentFrame;
        int curretAnimation;
        Animation* animations;
};

私のdrawObjectコンストラクター:

drawObject::drawObject(char* name, char* surfaceFile, int xPos, int yPos, int drawLevel, bool willMoveVar, bool isSpriteVar, int animationNumber)
{
    animationSet = new AnimationSet(animationNumber);
    name = name;
    xPos = xPos;
    yPos = yPos;
    willMoveVar = willMove;
}
4

1 に答える 1

4

提供したコードはエラーの場所を示していませんが、にAnimationSetメンバーオブジェクトがあると思いますdrawObject。つまり、デフォルトコンストラクターがない場合は、コンストラクター初期化子リストで初期化する必要があります。

drawObject::drawObject(char* name, char* surfaceFile, int xPos, int yPos, int drawLevel, bool willMoveVar, bool isSpriteVar, int animationNumber) :
animationSet(animationNumber) //I'm assuming this isn't a pointer
{
  name = name;
  xPos = xPos;
  yPos = yPos;
  willMoveVar = willMove;
}
于 2013-01-05T15:39:00.373 に答える