0

私は自分のコードを書き直して、すべての生のポインターをスマート ポインターや参照のようなものに置き換えることにしました。ただし、一部のクラス (Game、EntityManager、Input...) にシングルトン パターンを使用しており、スマート ポインターを初期化する方法がわかりません。問題は、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();
};

回答ありがとうございます。

4

1 に答える 1

0

メンバー初期化リストを引き続き使用できます。

Game::Game()
    : window_(SDL_CreateWindow(...), SDL_DestroyWindow)
{
}
于 2013-09-01T14:41:05.760 に答える