我正在使用Code :: Blocks来制作一个简单的游戏。我正在努力学习如何保持良好的文件结构,但我显然遗漏了一些东西,因为我似乎无法从.cpp文件中定义的对象调用程序范围函数。
所以,我有一个对象tank,它在头文件中声明,包含/ tank.h,并且在.cpp文件中定义,src / tank.cpp(这些是Code ::当我使用file-> new->类菜单时为我做的块。我还有一个函数apply_image()的头文件,名为apply.h。 apply.h包含在main.cpp文件中。
当src / tank.cpp看起来像这样:
#include "tank.h"
void tank::drawMe(SDL_Surface* screen)
{
apply_surface(x,y, tankImg, screen);
}
我得到一个读取错误的编译器错误:'apply_surface'未在此范围中声明 所以我为“apply.h”添加一个#include,如下所示:
#include "tank.h"
#include "apply.h"
void tank::drawMe(SDL_Surface* screen)
{
apply_surface(x,y, tankImg, screen);
}
现在我得到一个编译错误,它读取了`apply_surface(int,int,SDL_Surface *,SDL_Surface *)'的多个定义。我不能赢!
我已经查阅了一些关于C ++的文章,但我看不出我在做什么不同。感谢任何澄清,谢谢!