错误:重新定义默认参数:参数3但不重新定义?

时间:2014-04-05 22:10:26

标签: c++ class textures sdl

据我所知,这个类的代码工作但它不会编译并抛出标题中提到的错误。下面是头文件。

这是使用SDL标准库。

texture2D.h

#ifndef TEXTURE2D_H
#define TEXTURE2D_H

#include <SDL.h>
#include <string>
#include "Commons.h"

using namespace::std;

class Texture2D
{
    SDL_Renderer* mRenderer;
    SDL_Texture* mTexture;

    int mWidth;
    int mHeight;

public:
    Texture2D(SDL_Renderer* renderer);
    ~Texture2D();

    bool LoadFromFile(string path);
    void Free();
    void Render(Vector2D newPosition, SDL_RendererFlip flip, double angle = 0.0f);

    int GetWidth() { return mWidth; }
    int GetHeight() { return mHeight; }
};

#endif

1 个答案:

答案 0 :(得分:2)

我想你的Render定义看起来像这样

在.cpp

  void Texture2D::Render(Vector2D newPosition, SDL_RendererFlip flip, double angle = 0.0f)
  {
     ...
  }

什么时候应该

  void Texture2D::Render(Vector2D newPosition, SDL_RendererFlip flip, double angle )
  {
     ...
  }

您只在声明中提供默认值(通常为.h)