我有一个需要“全局”使用的对象,我需要能够从其他类的.h和.cpp文件中访问它。我不确定如何解决这个问题,所以让我更详细地描述一下。
我有一个名为CoreEnvironment的类。该类在其最低级别上保存我的引擎的核心,例如:渲染、网络、物理和路径查找。每次只能存在一个此类的实例,并且该实例在应用程序的整个生命周期内存在。我的第一个想法是将其创建为单例,但在进行研究后,我看到了很多关于使用单例的负面评论,而我也不完全理解如何创建单例。在我的研究中,我看到了“extern”关键字的使用,但是我对它的用法并不清楚。
以下是该类的框架:
我有一个名为CoreEnvironment的类。该类在其最低级别上保存我的引擎的核心,例如:渲染、网络、物理和路径查找。每次只能存在一个此类的实例,并且该实例在应用程序的整个生命周期内存在。我的第一个想法是将其创建为单例,但在进行研究后,我看到了很多关于使用单例的负面评论,而我也不完全理解如何创建单例。在我的研究中,我看到了“extern”关键字的使用,但是我对它的用法并不清楚。
以下是该类的框架:
class CoreEnvironment
{
NetHandler* m_NET;
NetPoint* Server;
PhysicsHandler* m_Physics;
irr::IrrlichtDevice* Device;
irr::ITimer* Timer;
public:
CoreEnvironment();
~CoreEnvironment();
bool RunDevice();
void Update();
} CoreEnv;
我引擎中有一些高级类,如ActorHandler和WorldHandler。在这两个类的.cpp文件内,我需要访问CoreEnv。如果我只是简单地#include "CoreEnvironment.h",那么每次文件被包含时都会创建另一个CoreEnv实例,但我需要访问已初始化的原始实例。
整个结构可能不是正确的方法。非常感谢您的时间,如果有任何解决此问题或更有效的方法的提示或建议,请告诉我。谢谢。