在声明带有静态成员的类时出现问题[重复]

问题描述 投票:0回答:1

所以基本上我试图创建一个类和一个(静态)函数来访问它,但是由于某些原因,代码拒绝编译并抛出2个“未解析的外部符号”错误。

// game.cpp
#include "game.h"

CGame::CGame()
{
    // ...
}

CGame* CGame::getInstance()
{
    if (s_instance == nullptr)
        s_instance = new CGame();

    return s_instance;
}

void CGame::run()
{
    // ...
}

...

// main.cpp
#include "game.h"

int main()
{
    CGame::getInstance()->run();
}

...

#ifndef _GAME_
#define _GAME_

class CGame
{
private:
    static CGame* s_instance;

public:
    static CGame* getInstance();

    void run(); // For testing purposes
    CGame();
};

#endif _GAME_

这里是什么问题,如何在不声明的情况下创建我可以使用的类?

c++ class static
1个回答
1
投票
CGame::s_instance = nullptr;

您的cpp中缺少。

© www.soinside.com 2019 - 2024. All rights reserved.