我正在编写一个程序,它有很多需要多个类访问和修改的全局变量。目前我在需要时将它们传递给对象但是现在变得非常复杂(我假设内存密集,因为我传递纹理),因此我试图定义它们一次所以一切都可以访问它们。我不确定如何以这种方式定义它们。
我创建了一个定义变量的头文件,并将其包含在所有其他类头文件中(见下文)。但是,由于某些全局变量是包含global.h的类的对象,我相信我正在创建一个无限循环。
我为自己缺乏知识而道歉,我试图通过前瞻宣言和单身人士来做事,但没有运气。
//This file (global.h) is included by every other class header file
#ifndef GLOBAL_H
#define GLOBAL_H
#include "component.h" //component.h also calls global.h
//Viewport Controllers.
extern float viewportX = 0;
extern float viewportY = 0;
extern float viewportZ = 0;
extern float displaySize = 50;
extern float scale = 1;
extern component = component();
#endif
提前致谢。
答案 0 :(得分:0)
您可以在一个.cpp文件中定义所有全局变量,无论何时必须在其他文件中使用它们,都可以通过使用extern
关键字进行限定来在该文件中声明它们。
答案 1 :(得分:0)
我建议创建一个名为statics的类。在那里你可以声明常量,只读变量和方法,它们大多数独立于调用它们的对象。然后你就有了一个封闭,对可变性的限制访问以及对全球全球变量的广泛使用。 如果您希望多个变量也被各种类更改,那么您应该创建访问器和/或变更器。请记住要小心,哪个类更改此静态类中的静态范围变量。 另一个选择是使用共享内存,但我认为,这超出了您的要求的范围。