【发布时间】:2023-12-20 09:05:01
【问题描述】:
我决定重写我的代码并将所有原始指针替换为智能指针或引用之类的想法。但是,我对我的一些类(游戏、实体管理器、输入...)使用单例模式并且不知道如何初始化智能指针。问题是我使用SDL,我需要设置智能指针的删除器
std::unique_ptr<SDL_Window> window_(SDL_CreateWindow(...), SDL_DestroyWindow);
我通常会这样做,但是当指针是单例类的私有成员并且我不能将任何参数传递给类的构造函数(如窗口名称、宽度、高度...)。
class Game
{
private:
std::unique_ptr<SDL_Window> window_;
Game();
~Game();
public:
static Game& getInstance();
};
感谢您的回答。
【问题讨论】:
标签: c++ c++11 sdl smart-pointers raii