私は自分のコードを書き直して、すべての生のポインターをスマート ポインターや参照のようなものに置き換えることにしました。ただし、一部のクラス (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();
};
回答ありがとうございます。