1

我正在使用 Code::Blocks 制作一个简单的游戏。我正在尝试学习如何保持良好的文件结构,但我显然遗漏了一些东西,因为我似乎无法从 .cpp 文件中定义的对象调用程序范围函数。

所以,我有一个对象 tank,它在头文件 include/tank.h 中声明,并在 .cpp 文件 src/tank.cpp 中定义(这些是 Code::Blocks 为当我使用文件-> 新建-> 类菜单时的我)。我还有一个函数 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);
}

我收到一个编译器错误,内容为 |error: 'apply_surface' is not declared in this scope| 所以我为“apply.h”添加了一个#include,如下所示:

#include "tank.h"
#include "apply.h"

void tank::drawMe(SDL_Surface* screen)
{
    apply_surface(x,y, tankImg, screen);
}

现在我得到一个编译器错误,它读取 |multiple definition of `apply_surface(int, int, SDL_Surface*, SDL_Surface*)'| 我赢不了!

我已经查阅了一些关于 C++ 的文本,但我看不出我在做什么不同。任何澄清表示赞赏,谢谢!

4

0 回答 0