我目前有一个头文件概述了一个程序类:init(),render(),loop(),event()...(etc)
其中每个都在自己的文件init.cpp等中设置。
那么什么是初始化变量的最佳方法,以便所有文件都可以使用它们?我应该在头文件中这样做吗?或者这是一个不好的方式。
提前致谢!
-Devan
使用组织信息进行编辑,不希望在评论中执行此操作,因为没有代码块。
这是我的头文件(CGame.h)
class CGame
{
public:
CGame();
int execute();
bool init();
void event();
void loop();
void render();
void cleanUp();
protected:
private:
bool running;
}
然后,每个方法都在自己的.cpp文件中定义
#include "CGame.h"
void CGame::render()
{
}
然后在main.cpp
中调用所有这些内容CGame::CGame()
{
running = true;
}
int CGame::execute()
{
if(init() == false)
{
return -1;
}
while(running)
{
loop();
render();
}
cleanUp();
return 0;
}
int main (void)
{
CGame app;
return app.execute();
}
这不是正确的方法吗?我想我是在旧的SDL教程中阅读的。
答案 0 :(得分:4)
不要使用全局变量。
在您学会没有全局变量之前,请在头文件中将变量声明为extern,例如extern int pi
。这告诉编译器:“存在一个名为pi
的整数,不关心它在哪里,链接器将知道在哪里找到它”。这样你就可以在任何你想要的地方初始化它们。
最佳位置是个人品味。基本上要么为所有变量使用中央c ++文件,要么将它们放入与它们最密切相关的c ++文件中。特别是如果变量仅在一个源文件中使用,请不要将其放在标题中,而是在该源文件中声明并定义它。