本文へスキップ
BecomeCoder

C++コース · 第20章 まとめ · レッスン77

C++のまとめ ― これからのモダンC++へ

ローカル実施

導入

長い道のり、おつかれさまでした。C言語に近い基礎から、モダン C++ の実務レベルの文法まで一通り歩いてきました。最後に全体を振り返り、次の一歩を示します。

説明

このコースで学んだことを地図にすると、次のようになります。

flowchart TB
  base["基礎(C言語に近い部分)<br/>変数・制御・関数・配列・ポインタ"]
  base --> str["文字列とコンテナ<br/>string / vector / map / set"]
  str --> oop["オブジェクト指向<br/>class / 継承 / virtual / 演算子"]
  oop --> gen["ジェネリック<br/>テンプレート / STL アルゴリズム / ラムダ"]
  gen --> safe["安全な資源管理<br/>RAII / スマートポインタ / 例外"]
  safe --> modern["モダン機能<br/>optional / enum class / 構造化束縛"]
  modern --> pro["実務とC++20<br/>分離 / variant / constexpr / 並行 / concepts・ranges"]

実務でコードを書くときの指針を、あらためて整理します。

  • 生の配列・生ポインタより、vector・string・スマートポインタを使う(安全で楽)。
  • 引数は const T& で受けるのが基本。書き換えるときだけ T&。
  • 資源は RAII に任せる(Rule of Zero)。new/delete を手で書かない。
  • 定番処理は <algorithm>/ranges に任せ、条件はラムダで渡す。
  • 変更しないものには const/constexpr を付ける(const correctness、コンパイル時計算)。

第18章では宣言と定義の分離(ヘッダと実装)、std::variant/std::tuple、constexpr を、第19章では並行処理(std::thread・std::async)と C++20 の大型追加(concepts・ranges・std::format・std::span)、可変長テンプレートまで扱いました。ここから先も C++ は進化し続けますが、土台はこのコースで身につけた考え方です。

おわりに

この C/C++ コースでは、cout/cin から始めて、変数・制御・関数・配列・ポインタといった基礎、そして string・vector・クラス・継承・テンプレート・STL・スマートポインタ・例外、さらに分離・モダンな型・並行処理・C++20 まで、実務で使うモダン C++ を一通り学びました。

ここで身につけた「メモリを意識する感覚」「型と const で安全を守る発想」「RAII による資源管理」は、他の言語を学ぶときにも必ず土台になります。次のステップとして、手元にコンパイラ(Visual Studio や g++/clang)を用意し、このコースで紹介したコードを実際に動かし、改造してみてください。あなたのモダンな開発の旅は、ここからが本番です。

このコースはここまで。次に学ぶなら

おつかれさまでした。ここまでの学びを土台に、関連するコースへ進めます。