【发布时间】:2020-05-23 00:20:57
【问题描述】:
所以基本上我正在尝试创建一个类和一个(静态)函数来访问它,但由于某种原因,代码拒绝编译并抛出 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_
这里有什么问题,我怎么可能创建一个我 [可以] 使用而不声明它的类?
【问题讨论】:
-
编译器的实际错误信息是什么?简单提及“未解决的外部符号”错误是不够的,尤其是在我们不知道符号名称的情况下。
-
您应该始终逐字提供错误消息的文本。除此之外,这可能是 "Unresolved external symbol on static class members" 的副本。