「やってはいかんとわかっていても、それをやったときのエラーを確認しろ」というのが師匠流なのですが、 shared_ptr でそれをやろうとしてうまくいきません。
Player クラスのポインタだったら PlayerPtr とかそんな感じです。
仕事は WEB 系なんですが、ゲーム制作に興味ある方とお話ししていてスマートポインタ( Boost の shared_ptr )の話題になることがありました。
普段 C/C++ に触れていないと、その存在意義もわかりにくいでしょうし、ほとんど理解してもらうのをあきらめていたところがあるのですが、よく考えたらハードリンクを例にとると簡単に伝わったのかもしれません。
ゲームを始め、組み込みは難しい、難しいというか経験のない人間がうかつに手を出せないという印象があります。…が、最近、 Java の VM が載っている CPU があるらしく、そういったハードが対象の場合、昔ほど基礎知識がいらないことがあるとのお話を聞きました。
PHP のようなインタプリタ言語では、ソースコードの動的読み込みやメソッドの動的追加など、プログラムを拡張するポイントを簡単に作ることができますが、コンパイル言語である C++ ではそうはいきません。やろうとするとコールバック関数などを考えると思うのですが、それだと関数ひとつしか登録できません。
ポインタ変数を何も指していない状態にするためには null 値を設定します。
プログラミング界におけるベストセラーであるポインタ解説書があります。
配列変数のメモリを動的に確保するためには new 演算子を使います。
スカラー変数のメモリを動的に確保するためには new 演算子を使います。