Skip to content

nkys39/cpp_tutorial_intermediate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

C++ 中級チュートリアル

オブジェクト指向プログラミングとSTL(Standard Template Library)を学ぶための中級者向けC++チュートリアルです。

📚 コース構成

このチュートリアルは全18レッスンで構成されています:

🎯 第1部:オブジェクト指向編(レッスン11-15)

  • Lesson 11: クラスとオブジェクト基礎

    • クラスの定義、メンバ変数・関数
    • アクセス指定子(public, private, protected)
    • カプセル化の概念
  • Lesson 12: コンストラクタとデストラクタ

    • コンストラクタの種類(デフォルト、パラメータ付き)
    • デストラクタの役割
    • 初期化リスト
  • Lesson 13: 継承とポリモーフィズム

    • 継承の基本
    • virtual関数
    • オーバーライド
  • Lesson 14: 名前空間と列挙型

    • namespace の使用
    • enum と enum class
    • スコープの管理
  • Lesson 15: 演算子オーバーロード

    • 算術演算子のオーバーロード
    • 比較演算子のオーバーロード
    • ストリーム演算子(<<, >>)

📦 第2部:STLコンテナ編(レッスン16-21)

  • Lesson 16: vector と deque

    • 動的配列の使用
    • 両端キューの操作
  • Lesson 17: list と forward_list

    • 双方向リスト
    • 単方向リスト
  • Lesson 18: stack, queue, priority_queue

    • スタック(LIFO)
    • キュー(FIFO)
    • 優先度付きキュー
  • Lesson 19: set と multiset

    • 順序付き集合
    • 重複を許可する集合
  • Lesson 20: map と multimap

    • キーと値のペア
    • 連想配列の使用
  • Lesson 21: unordered_set と unordered_map

    • ハッシュテーブルベースのコンテナ
    • パフォーマンスの違い

🚀 第3部:STL応用と実践編(レッスン22-28)

  • Lesson 22: STLアルゴリズム

    • sort, find, count
    • transform, accumulate
    • その他の便利なアルゴリズム
  • Lesson 23: イテレータとラムダ式

    • イテレータの種類
    • ラムダ式の活用
    • 関数オブジェクト
  • Lesson 24: 例外処理

    • try-catch の使用
    • 例外クラスの定義
    • RAII パターン
  • Lesson 25: ファイル入出力

    • fstream の使用
    • テキスト・バイナリファイルの操作
    • エラーハンドリング
  • Lesson 26: ヘッダとソースの分離

    • .h と .cpp の使い分け
    • インクルードガード
    • プロジェクト構成のベストプラクティス
  • Lesson 27: 単体テストの書き方

    • Google Test または Catch2 の導入
    • CMake CTest の使用
    • テスト駆動開発(TDD)の基礎
  • Lesson 28: ライブラリの作成

    • 静的ライブラリ (.a)
    • 動的ライブラリ (.so/.dll)
    • CMake でのライブラリビルド

🎓 前提知識

このチュートリアルを始める前に、以下の知識が必要です:

  • 基本的なC++の文法(変数、制御構文、関数)
  • ポインタと参照の基礎
  • 配列と文字列の操作

C++ 基礎チュートリアルを先に完了することをお勧めします。

💻 開発環境

必要なツール

  • C++11以上対応のコンパイラ
    • GCC 4.8+
    • Clang 3.3+
    • MSVC 2015+
  • CMake 3.10+

ビルド方法

各レッスンは独立してビルドできます:

cd lesson11_classes
mkdir build
cd build
cmake ..
make
./classes_demo
./exercises

📖 使い方

  1. 学習の流れ

    • 各レッスンのREADME.mdを読む
    • デモプログラム(例:classes.cpp)を実行して理解を深める
    • 演習問題(exercises.cpp)に取り組む
  2. 演習問題

    • TODOコメントに従って実装
    • 自分で実装した後、解答例(コメントアウト部分)を確認
  3. 復習

    • 理解が不十分な部分は繰り返し学習
    • 自分なりのプログラムを書いて応用力を養う

🔗 関連リソース

📝 次のステップ

このチュートリアルを完了したら、以下の学習を推奨します:

  • C++ 上級チュートリアル(予定)

    • テンプレート、スマートポインタ、ムーブセマンティクス等
  • C++ エキスパートチュートリアル(予定)

    • マルチスレッディング、SIMD命令、最適化技術等

📄 ライセンス

このチュートリアルは教育目的で自由に使用できます。

🤝 貢献

改善の提案や誤りの報告は、GitHubのIssueでお願いします。


Happy Coding! 🚀

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published