函数未在范围中声明而不是函数的多个定义

时间:2012-11-01 00:25:23

标签: function include scope

我正在使用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 ++的文章,但我看不出我在做什么不同。感谢任何澄清,谢谢!

0 个答案:

没有答案