Skip to content

ShigenoriAkasobe/cpp_learning

Repository files navigation

C++ Learning Roadmap

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 を使用してビルド管理を行っています。

コマンドラインでの実行

  1. ビルド用ディレクトリの作成と移動

    mkdir build
    cd build
  2. ビルド設定 (Configure)

    cmake ..
  3. ビルド実行 (Build)

    cmake --build .
  4. 各サンプルの実行 ビルドが完了すると、各ディレクトリ名に対応した実行ファイルが生成されます。

    # 例: 基本文法のサンプルを実行
    ./01_basics/01_basics
    
    # 例: メモリ管理のサンプルを実行
    ./03_memory/03_memory

VS Code での実行

このリポジトリには .vscode 設定が含まれています。「CMake Tools」拡張機能をインストールしている場合、以下の手順で簡単に実行できます。

  1. VS Code 下部のステータスバーから [Build] をクリック(または F7)。
  2. 実行したいターゲット(例: 01_basics)を選択して実行ボタンを押す(または Shift + F5)。

Note: CMake Tools の自動構成について CMakeLists.txt を保存すると、CMake Tools が自動的に変更を検知し、バックグラウンドで構成(Configure)を実行します。 これにより build ディレクトリ内のビルドシステムファイルが自動更新されるため、手動で cmake .. を実行し直す必要はありません。

学習のポイント

  • C言語との違い: std::stringstd::vector など、メモリ管理を自動化するクラスを積極的に使いましょう。
  • メモリ管理: new/delete を直接使うことは避け、RAIIスマートポインタ を活用するのが現代的な C++ の書き方です。
  • C++20: conceptfilesystem など、新しい標準機能も取り入れています。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors