这是游戏的一部分。 游戏读取地图文件,现在必须以单例设计模式实施地图。 if()在编译器中显示为错误。 我有以下代码:
//.h
class Map
{
static Map* m_instance;
public:
static Map* getInstance();
Map();
~Map();
//.cpp
static Map *getInstance()
{
if (!m_instance)
m_instance = new Map();
return m_instance;
}
答案 0 :(得分:0)
您是否在cpp文件中声明了Map
静态实例?
// Map.h
class Map {
static Map *m_instance;
public:
static Map *getInstance();
Map() = default;
~Map() = default;
};
// Map.cpp
Map *Map::m_instance = nullptr; // <--- this line?
Map *Map::getInstance() {
if (m_instance == nullptr) {
m_instance = new Map();
}
return m_instance;
}
另外,请考虑使用智能指针。