C++ を使用してゲームを開発しています。私は多くの場所で、C++ でポインターを使用することは基本的に絶対に避けるべきであると読んだことがあります。私はまだC++を学んでおり、これに少し混乱しています。
永続的で、ゲーム セッションの間存続するプレーヤー オブジェクトが必要です。このオブジェクトには、プレーヤーのインベントリ、プレーヤーの統計などが含まれます。
プレーヤーのインベントリは基本的に、アイテム オブジェクト (私が作成した「アイテム」クラス) を含む単なるベクトルです。
誰かが次のことを明確にできれば、私の混乱は解消されます。
- 人々が「ポインターは悪い」と言うとき、それは標準の C++ ポインターを意味しますか? スマートポインタは「OK」と見なされますか?
- ポインター以外に、ヒープに割り当てられた永続オブジェクトにアクセスするにはどうすればよいでしょうか?
- プレーヤーのインベントリでアイテムを見つけるメソッドが必要ですが、アイテムが見つからない場合は NULL を返す場合、ポインタなしでどのように実装できますか? 「findItem」から返されたアイテムは編集可能である必要があるため (たとえば、アイテム数を変更するため)、現時点ではベクター内のアイテムへのポインターを返します。これはポインターの有効な使用法ですか?
どんな助けでも大歓迎です!