单例类中的初始化列表

时间:2013-09-01 14:37:16

标签: c++ c++11 sdl smart-pointers raii

我决定重写我的代码并将所有原始指针替换为智能指针或引用。但是,我正在为我的一些类(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();
};

感谢您的回答。

1 个答案:

答案 0 :(得分:0)

您仍然可以使用成员初始化列表:

Game::Game()
    : window_(SDL_CreateWindow(...), SDL_DestroyWindow)
{
}