本文へスキップ
BecomeCoder

C++コース · 第17章 例外処理とモダンな機能 · レッスン71

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 / 構造化束縛"]

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

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

C++ はここからさらに、std::string_viewconstexpr、並行処理(std::threadstd::async)、C++20 の「概念(concepts)」や「モジュール」など、奥深い世界が広がっています。しかし土台はこのコースで身につけた考え方です。

おわりに

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

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