在我的项目中,我有一个名为globalClass的类,该类为每个类及其创建的实例保留全局变量。
此globalClass的目的是将所有其他类及其创建的实例的每个变量发送相同的值。如果一个类的实例更改了该值,则其他类(包括main.cpp)必须看到新值。
认为,
class globalClass
{
public:
int foo = 100;
}
#include "class2nd.h"
#include "class3rd.h"
#include "class4th.h"
class2nd class2ndA;
class2nd class2ndB;
class2nd class2ndC;
class3rd class3rdA;
class3rd class3rdB;
class3rd class3rdC;
class4th class4thA;
class4th class4thB;
class4th class4thC;
(例如 class2nd )
#include "globalClass.h"
globalClass glb;
void globalClass::someFunction()
{
glb.foo = 123;
}
为了使foo在所有类及其实例中都是唯一的,我该怎么办?
最佳答案
一种解决方案是对您的全局类使用Singleton。例如,您可以看到此answer。
这里的问题是您要在类中定义每个编译单元(即,您编译的每个.cpp文件),这意味着在每个cpp文件中实际上都有一个不同的类实例。
您还应该考虑使用Singleton设计模式,因为在构建应用程序时很少采用这种设计。您可以看到this来了解更多有关其用例的信息!
关于c++ - C++中的全局类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61435034/