Python, C言語, ShellScript などの経験がある開発者が、モダンな C++ (C++20) を効率よく習得するための学習用リポジトリです。 基本的な文法からオブジェクト指向、メモリ管理、そして実践的なアプリケーション作成までをステップバイステップで学びます。
| ディレクトリ | 内容 | 主なトピック |
|---|---|---|
| 00_setup | 環境構築 | CMake, Hello World, コンパイル環境確認 |
| 01_basics | 基本文法 | namespace, auto, std::string, 範囲for, 参照, 例外処理 |
| 02_1_structs | クラス/構造体 基礎 | struct と class の違い, アクセス修飾, 初期化, const メンバ関数 |
| 02_2_oop | オブジェクト指向 | クラス設計, コンストラクタ, 継承, 仮想関数, 多態性 |
| 03_memory | メモリ管理 (重要) | RAII, スマートポインタ (unique_ptr, shared_ptr), 所有権の移動 |
| 04_templates | テンプレート | 関数/クラステンプレート, コンセプト (C++20) |
| 05_stl | 標準ライブラリ | std::vector, std::map, アルゴリズム, std::filesystem |
| 06_app | 実践アプリ | (TBD) 小型ゲームシミュレーターの作成 |
- CMake: バージョン 3.16 以上
- コンパイラ: C++20 をサポートするもの (GCC 10+, Clang 10+ など)
- OS: Linux (推奨), macOS, Windows (WSL等)
このプロジェクトは CMake を使用してビルド管理を行っています。
-
ビルド用ディレクトリの作成と移動
mkdir build cd build -
ビルド設定 (Configure)
cmake ..
-
ビルド実行 (Build)
cmake --build . -
各サンプルの実行 ビルドが完了すると、各ディレクトリ名に対応した実行ファイルが生成されます。
# 例: 基本文法のサンプルを実行 ./01_basics/01_basics # 例: メモリ管理のサンプルを実行 ./03_memory/03_memory
このリポジトリには .vscode 設定が含まれています。「CMake Tools」拡張機能をインストールしている場合、以下の手順で簡単に実行できます。
- VS Code 下部のステータスバーから [Build] をクリック(または
F7)。 - 実行したいターゲット(例:
01_basics)を選択して実行ボタンを押す(またはShift + F5)。
Note: CMake Tools の自動構成について
CMakeLists.txtを保存すると、CMake Tools が自動的に変更を検知し、バックグラウンドで構成(Configure)を実行します。 これによりbuildディレクトリ内のビルドシステムファイルが自動更新されるため、手動でcmake ..を実行し直す必要はありません。
- C言語との違い:
std::stringやstd::vectorなど、メモリ管理を自動化するクラスを積極的に使いましょう。 - メモリ管理:
new/deleteを直接使うことは避け、RAII と スマートポインタ を活用するのが現代的な C++ の書き方です。 - C++20:
conceptやfilesystemなど、新しい標準機能も取り入れています。