是否可以制作通用单例?我想创建一些我可以继承的东西并获得单例的功能。我在使用带有静态成员的模板时遇到了麻烦。
这不应该工作吗?
**
更新
**
感谢您到目前为止的答复。所以现在我的问题是 GameEngine 看不到它自己的构造函数。我知道这是私人的,但仍然。
单例.h
template <typename T>
class Singleton
{
private:
static std::shared_ptr<T> m_Instance;
public:
static std::shared_ptr<T> Instance();
};
template<typename T>
std::shared_ptr<T> Singleton<T>::m_Instance = nullptr;
template<typename T>
std::shared_ptr<T> Singleton<T>::Instance()
{
if(m_Instance == nullptr)
m_Instance = std::make_shared<T>();
return m_Instance;
}
游戏引擎.h
class GameEngine : public Singleton<GameEngine>
{
private:
GameEngine();
};