我是 C++ 新手,这让我有点困惑我试图理解一些代码源,它正在做类似的事情
使用 3 个静态指针指向 3 个类,将 3 个指针从 main 分配给这 3 个类,使用它们访问他们创建的类实例的成员 为什么不只使用实例?所以他们在堆栈上创建它而不是在没有函数范围的堆上创建它?它已经在 main 这里是代码源
int _tmain(int argc, _TCHAR* argv[])
{
...
SetConsoleTextAttribute(hStdOut, FOREGROUND_CYAN);
printf("Creating Database... ");
CDatabaseRoot::Create();
SetConsoleTextAttribute(hStdOut, FOREGROUND_LIME);
WriteLn("Completed.");
SetConsoleTextAttribute(hStdOut, FOREGROUND_CYAN);
printf("Creating Servers... ");
CDatabaseRoot::AuthServer->Port = 9958;
CDatabaseRoot::AuthServer->OnClientConnect = AuthConnect;
在 CDatabaseRoot 的最后
class CDatabaseRoot
{
public:
static CDatabaseRoot* Core;
static CServerSocket* AuthServer;
static CServerSocket* GameServer;
static void Create();
static void Destroy();
在 cpp
CDatabaseRoot* CDatabaseRoot::Core;
CServerSocket* CDatabaseRoot::AuthServer;
CServerSocket* CDatabaseRoot::GameServer;
void CDatabaseRoot::Create()
{
CDatabaseRoot::Core = new CDatabaseRoot();
CDatabaseRoot::AuthServer = new CServerSocket();
CDatabaseRoot::GameServer = new CServerSocket();
}
为什么这样做?有没有更好的方法来完成它?我想要一些解释,谢谢