C++のオススメ学習順
まだまだ私も学習途中ですが、自分のtodoも兼ねてです。
基礎的な文法
多くの学習サイトで学べます。なので詳細は省略しますが 学習しなくても良いのでは?と思う物を列挙します。 選択基準としては、C++で推奨されていない、詰まりやすい物です。 結局はいずれ勉強する必要になるとは思います。
- ポインタ, new, delete -> unique_ptr, shared_ptr
- 固定配列 -> vector
- char型文字列 -> string
- 関数ポインタ -> function
- defineマクロ -> const, constexpr, template関数
C++
ここからは大まかな概念をオススメ順に列挙します。
- スコープ
- オブジェクト思考, カプセル化
- RAII
- ここで学んでおくと指針が立ち易いと思います。
- ファイル分割、コンパイラファイアウォール
- ポリモーフィズム
- NVI
- こちらも。virtualにした関数の扱い方の指針になります。
- 読みやすいコード、コーディング規約等
- C++11の機能
- 確認するだけで十分です。欲しい機能があるかもしれないし、用意してある物を作っている事が多いです。全部の把握は難しいですが、簡単にでも知ると見通しが良くなります。
- Gof等のデザインパターン
- 関数オブジェクト、ファンクター
- template
- ジェネリックプログラミング
- 例外安全
- テンプレートメタプログラミング
- thread
- 色んな要因がからんで難しいように思います。
- 実行速度最適化
- boost
- どこへでも羽ばたけば良い。使うだけならもっと早くても良いと思います。
汎用的なイディオムをもっと知っていきたいです。