据我所知,这个类的代码工作但它不会编译并抛出标题中提到的错误。下面是头文件。
这是使用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
答案 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)