gpt4 book ai didi

c++ - 非常快速的 Globals.h 问题(包括在内,一些项目仍然未定义)

转载 作者:行者123 更新时间:2023-11-30 04:33:34 24 4
gpt4 key购买 nike

我希望使用 globals.h 来存储一个矩形 vector 以及一个碰撞框和一些全局 bool 值

全局变量

extern SDL_Rect winRect;

extern std::vector<SDL_Rect> platform;

extern bool paused;
extern bool exit;

我可以像在 globals.cpp 中那样将 bool 设置为 false。

bool paused = false;
bool exit = false;

然而,当我尝试使用全局 winRect SDL_Rect 或 SDL_Rects 的全局 vector 时,编译器会吐出“未定义的平台引用”或“winRect”。我无法理解,因为它们是在 globals.h 文件中设置的,而 globals.h 包含在试图使用它们的类 header 中

我是否需要在 globals.cpp 文件中定义关于 vector 和矩形的任何其他内容?

对于我试图操纵全局变量的类,我的标题包含顺序可能有问题吗?

希望有一个简单的解决方案,我确定我只是遗漏了一些东西。

最佳答案

需要在globals.cpp中定义winRect和platform:

SDL_Rect winRect;

std::vector<SDL_Rect> platform;

bool paused = false;
bool exit = false;

Extern 只是告诉编译器变量和/或函数在另一个地方定义,如果你没有定义它,链接器会给你一个错误,因为它找不到定义。

关于c++ - 非常快速的 Globals.h 问题(包括在内,一些项目仍然未定义),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6747507/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com