我决定重写我的代码并将所有原始指针替换为智能指针或引用。但是,我正在为我的一些类(Game,EntityManager,Input ...)使用单例模式,并且不知道如何初始化智能指针。问题是我使用SDL,我需要设置智能指针的deletor
std::unique_ptr<SDL_Window> window_(SDL_CreateWindow(...), SDL_DestroyWindow);
这就是我将如何做到这一点,但是当指针是singleton类的私有成员并且我不能将任何参数传递给类的构造函数时(例如窗口名称,宽度,我不知道如何操作)高度...)。
class Game
{
private:
std::unique_ptr<SDL_Window> window_;
Game();
~Game();
public:
static Game& getInstance();
};
感谢您的回答。
答案 0 :(得分:0)
您仍然可以使用成员初始化列表:
Game::Game()
: window_(SDL_CreateWindow(...), SDL_DestroyWindow)
{
}