Plan

1項目あたり約21.75m(実績:187節・計4068分より算出) 総残時間:約3h59m(11項目 × 21.75m) 残りの稼働日数:1日(2026年4月2日) 1日の学習時間:3h59m(3h59m / 1日) Chapter 0以外に取り組む

LearnCpp.com 読了メモ

Chapter 0: Introduction / Getting Started (はじめに / 準備)

  • 0.1 Introduction to these tutorials (本チュートリアルの紹介)
  • 0.2 Introduction to programs and programming languages (プログラムとプログラミング言語の紹介)
  • 0.3 Introduction to C/C++ (C/C++の紹介)
  • 0.4 Introduction to C++ development (C++開発の紹介)
  • 0.5 Introduction to the compiler, linker, and libraries (コンパイラ、リンカ、ライブラリの紹介)
  • 0.6 Installing an Integrated Development Environment (IDE) (統合開発環境のインストール)
  • 0.7 Compiling your first program (最初のプログラムのコンパイル)
  • 0.8 A few common C++ problems (C++でよくあるいくつかの問題)
  • 0.9 Configuring your compiler: Build configurations (コンパイラ設定:ビルド構成)
  • 0.10 Configuring your compiler: Compiler extensions (コンパイラ設定:コンパイラ拡張)
  • 0.11 Configuring your compiler: Warning and error levels (コンパイラ設定:警告・エラーレベル)
  • 0.12 Configuring your compiler: Choosing a language standard (コンパイラ設定:言語規格の選択)
  • 0.13 What language standard is my compiler using? (コンパイラが使用している言語規格の確認)

Chapter 1: C++ Basics (C++の基本)

  • 1.1 Statements and the structure of a program (文とプログラムの構造)
  • 1.2 Comments (コメント)
  • 1.3 Introduction to objects and variables (オブジェクトと変数の紹介)
  • 1.4 Variable assignment and initialization (変数の代入と初期化)
  • 1.5 Introduction to iostream: cout, cin, and endl (iostream紹介:cout, cin, endl)
  • 1.6 Uninitialized variables and undefined behavior (未初期化変数と未定義動作)
    • C++ではほとんどの変数を特定の値で自動的に初期化しない。初期化されていない変数にメモリアドレスが割り当てられると、その変数の初期値はアドレスに以前から残っていた値になる。
  • 1.7 Keywords and naming identifiers (キーワードと識別子の命名) 16m
  • 1.8 Whitespace and basic formatting (空白と基本的なフォーマット) ok
  • 1.9 Introduction to literals and operators (リテラルと演算子の紹介) 14m
  • 1.10 Introduction to expressions (式の紹介) 9m
  • 1.11 Developing your first program (最初のプログラムの開発) 9m
  • 1.x Chapter 1 summary and quiz (第1章のまとめとクイズ) ok

Chapter 2: Functions and Files (関数とファイル)

  • 2.1 Introduction to functions (関数の紹介) 6m
  • 2.2 Function return values (関数の戻り値) 6m
  • 2.3 Void functions (void関数) ok
  • 2.4 Introduction to function parameters and arguments (関数のパラメータと引数の紹介) 13m
  • 2.5 Introduction to local scope (ローカルスコープの紹介) 10m
  • 2.6 Why functions are useful, and how to use them effectively (関数の有用性と効果的な使い方) ok
  • 2.7 Forward declarations and definitions (前方宣言と定義) 56m
  • 2.8 Programs with multiple code files (複数ファイルによるプログラム) 25m
  • 2.9 Naming collisions and an introduction to namespaces (名前の衝突と名前空間の紹介) 1h51m
  • 2.10 Introduction to the preprocessor (プリプロセッサの紹介) 1h16m
  • 2.11 Header files (ヘッダーファイル) 1h20m
  • 2.12 Header guards (ヘッダーガード) 20m
  • 2.13 How to design your first programs (最初のプログラムの設計方法) ok
  • 2.x Chapter 2 summary and quiz (第2章のまとめとクイズ) ok

Chapter 3: Debugging C++ Programs (デバッグ)

  • 3.1 Syntax and semantic errors (構文エラーと論理エラー) 3m
  • 3.2 The debugging process (デバッグプロセス) ok
  • 3.3 A strategy for debugging (デバッグ戦略) ok
  • 3.4 Basic debugging tactics (基本的なデバッグ戦術) 5m
  • 3.5 More debugging tactics (より高度なデバッグ戦術) 12m
  • 3.6 Using an integrated debugger: Stepping (デバッガの使用:ステップ実行) ok
  • 3.7 Using an integrated debugger: Running and breakpoints (デバッガの使用:実行とブレークポイント) ok
  • 3.8 Using an integrated debugger: Watching variables (デバッガの使用:変数のウォッチ) ok
  • 3.9 Using an integrated debugger: The call stack (デバッガの使用:コールスタック) ok
  • 3.10 Finding issues before they become problems (問題になる前に不具合を見つける) ok
  • 3x Chapter 3 summary and quiz (第3章のまとめとクイズ) ok

Chapter 4: Fundamental Data Types (基本データ型)

  • 4.1 Introduction to fundamental data types (基本データ型の紹介) 14m
  • 4.2 Void 1m
  • 4.3 Object sizes and the sizeof operator (オブジェクトサイズとsizeof演算子) 6m
  • 4.4 Signed integers (符号付き整数) 5m
  • 4.5 Unsigned integers, and why to avoid them (符号なし整数と避けるべき理由) 5m
  • 4.6 Fixed-width integers and size_t (固定幅整数とsize_t) 30m
  • 4.7 Introduction to scientific notation (科学的記数法の紹介) 1m
  • 4.8 Floating point numbers (浮動小数点数) 32m
  • 4.9 Boolean values (論理値) 15m
  • 4.10 Introduction to if statements (if文の紹介) 5m
  • 4.11 Chars (文字型) 16m
  • 4.12 Introduction to type conversion and static_cast (型変換とstatic_castの紹介) 2m
  • 4x Chapter 4 summary and quiz (第4章のまとめとクイズ) 1h17m

Chapter 5: Constants and Strings (定数と文字列)

  • 5.1 Constant variables (named constants) (定数変数) 19m
  • 5.2 Literals (リテラル) 13m
  • 5.3 Numeral systems (decimal, binary, hexadecimal, and octal) (数値体系:10進, 2進, 16進, 8進) 10m
  • 5.4 The as-if rule and compile-time optimization (as-ifルールとコンパイル時最適化) 10m
    • コンパイル時定数と実行時定数
  • 5.5 Constant expressions (定数式) 15m
  • 5.6 Constexpr variables (constexpr変数) 22m
  • 5.7 Introduction to std::string (std::stringの紹介) 1h10m
  • 5.8 Introduction to std::string_view (std::string_viewの紹介) 9m
  • 5.9 std::string_view (part 2) (std::string_view その2) 33m
  • 5x Chapter 5 summary and quiz (第5章のまとめとクイズ) 33m

Chapter 6: Operators (演算子)

  • 6.1 Operator precedence and associativity (演算子の優先順位と結合則) 13m
  • 6.2 Arithmetic operators (算術演算子) 2m
  • 6.3 Remainder and Exponentiation (剰余と累乗) 40m
  • 6.4 Increment/decrement operators, and side effects (インクリメント/デクリメント演算子と副作用) 13m
  • 6.5 The comma operator (カンマ演算子) 13m
  • 6.6 The conditional operator (条件演算子) 3m
  • 6.7 Relational operators and floating point comparisons (関係演算子と浮動小数点の比較) 20m
  • 6.8 Logical operators (論理演算子) 2m
  • 6.x Chapter 6 summary and quiz (第6章のまとめとクイズ) 9m

Chapter O: Bit Manipulation (ビット操作 - オプション)

  • 0.1 Bit flags and bit manipulation via std::bitset (std::bitsetによるビットフラグとビット操作) 45m
  • 0.2 Bitwise operators (ビット演算子) 10m
  • 0.3 Bit manipulation with bitwise operators and bit masks (ビット演算子とビットマスクによるビット操作) 20m
  • 0.4 Converting integers between binary and decimal representation (2進数と10進数の変換) ok

Chapter 7: Scope, Duration, and Linkage (スコープ、生存期間、リンク)

  • 7.1 Compound statements (blocks) (複合文/ブロック) 1m
  • 7.2 User-defined namespaces and the scope resolution operator (ユーザー定義名前空間とスコープ解決演算子) 33m
  • 7.3 Local variables (ローカル変数) 20m
  • 7.4 Introduction to global variables (グローバル変数の紹介) 7m
  • 7.5 Variable shadowing (name hiding) (変数のシャドウイング) 5m
  • 7.6 Internal linkage (内部リンク) 12m
  • 7.7 External linkage and variable forward declarations (外部リンクと変数の前方宣言) 20m
  • 7.8 Why (non-const) global variables are evil (なぜ非constグローバル変数が悪なのか) 8m
  • 7.9 Inline functions and variables (インライン関数と変数) 30m
  • 7.10 Sharing global constants across multiple files (using inline variables) (複数ファイル間でのグローバル定数の共有) 1m
  • 7.11 Static local variables (静的ローカル変数) 3m
  • 7.12 Scope, duration, and linkage summary (スコープ、生存期間、リンクのまとめ) ok
  • 7.13 Using declarations and using directives (using宣言とusingディレクティブ) 5m
  • 7.14 Unnamed and inline namespaces (無名名前空間とインライン名前空間) 10m
  • 7x Chapter 7 summary and quiz (第7章のまとめとクイズ) 5m

Chapter 8: Control Flow (制御フロー)

  • 8.1 Control flow introduction (制御フローの導入) ok
  • 8.2 If statements and blocks (if文とブロック) ok
  • 8.3 Common if statement problems (if文でよくある問題) 5m
  • 8.4 Constexpr if statements (constexpr if文) 3m
  • 8.5 Switch statement basics (switch文の基礎) 1m
  • 8.6 Switch fallthrough and scoping (switchのフォールスルーとスコープ) 5m
  • 8.7 Goto statements (goto文) ok
  • 8.8 Introduction to loops and while statements (ループとwhile文の紹介) ok
  • 8.9 Do while statements (do while文) 2m
  • 8.10 For statements (for文) 5m
  • 8.11 Break and continue (breakとcontinue) 2m
  • 8.12 Halts (exiting your program early) (プログラムの早期終了) 15m
  • 8.13 Introduction to random number generation (乱数生成の紹介) 20m
  • 8.14 Generating random numbers using Mersenne Twister (メルセンヌ・ツイスタを用いた乱数生成) 25m
  • 8.15 Global random numbers (Random.h) (グローバルな乱数) ok
  • 8.X Chapter 8 summary and quiz (第8章のまとめとクイズ) 20m

Chapter 9: Error Detection and Handling (エラー検出と処理)

  • 9.1 Introduction to testing your code (コードテストの紹介) 3m
  • 9.2 Code coverage (コードカバレッジ) 15m
  • 9.3 Common semantic errors in C++ (C++における一般的な論理エラー) 11m
  • 9.4 Detecting and handling errors (エラーの検出と処理) 5m
  • 9.5 std::cin and handling invalid input (std::cinと無効な入力の処理) 40m
  • 9.6 Assert and static assert (assertとstatic_assert) 20m
  • 9x Chapter 9 summary and quiz (第9章のまとめとクイズ) 1h9m

Chapter 10: Type Conversion, Type Aliases, and Type Deduction (型変換、型エイリアス、型推論)

  • 10.1 Implicit type conversion (暗黙的な型変換) 10m
  • 10.2 Floating-point and integral promotion (浮動小数点と整数の格上げ) 1h11m
  • 10.3 Numeric conversions (数値変換) 19m
  • 10.4 Narrowing conversions, list initialization, and constexpr initializers (縮小変換、リスト初期化、constexpr初期化子) 25m
  • 10.5 Arithmetic conversions (算術変換) 42m
  • 10.6 Explicit type conversion (casting) and static_cast (明示的な型変換(キャスト)とstatic_cast) 20m
  • 10.7 Typedefs and type aliases (typedefと型エイリアス) 17m
  • 10.8 Type deduction for objects using the auto keyword (autoキーワードを用いた型推論) 10m
  • 10.9 Type deduction for functions (関数の型推論) 20m
  • 10x Chapter 10 summary and quiz (第10章のまとめとクイズ)

Chapter 11: Function Overloading and Function Templates (関数のオーバーロードと関数テンプレート)

  • 11.1 Introduction to function overloading (関数のオーバーロードの紹介) 2m
  • 11.2 Function overload differentiation (関数のオーバーロードの区別) 28m
  • 11.3 Function overload resolution and ambiguous matches (関数オーバーロードの解決と曖昧な一致) 20m
  • 11.4 Deleting functions (関数の削除) 12m
  • 11.5 Default arguments (デフォルト引数) 12m
  • 11.6 Function templates (関数テンプレート) 1h10m
  • 11.7 Function template instantiation (関数テンプレートの実体化) 24m
  • 11.8 Function templates with multiple template types (複数のテンプレート型を持つ関数テンプレート) 10m
  • 11.9 Non-type template parameters (非型テンプレートパラメータ) 18m
  • 11.10 Using function templates in multiple files (複数ファイルでの関数テンプレートの使用) 25m
  • 11.x Chapter 11 summary and quiz (第11章のまとめとクイズ)

Chapter F: Constexpr functions (constexpr関数)

  • F.1 Constexpr functions (constexpr関数) 7m
  • F.2 Constexpr functions (part 2) 30m
  • F.3 Constexpr functions (part 3) and consteval 4m
  • F.4 Constexpr functions (part 4) 2m
  • F.X Chapter F summary and quiz

Chapter 12: Compound Types: References and Pointers (複合型:参照とポインタ)

  • 12.1 Introduction to compound data types (複合データ型の紹介) 34m
  • 12.2 Value categories (lvalues and rvalues) (値のカテゴリー:左辺値と右辺値) 60m
  • 12.3 Lvalue references (左辺値参照) 22m
  • 12.4 Lvalue references to const (constへの左辺値参照)
  • 12.5 Pass by lvalue reference (左辺値参照渡し)
  • 12.6 Pass by const lvalue reference (const左辺値参照渡し) 17m
  • 12.7 Introduction to pointers (ポインタの紹介) 43m
  • 12.8 Null pointers (ヌルポインタ) 20m
  • 12.9 Pointers and const (ポインタとconst) 3m
  • 12.10 Pass by address (アドレス渡し)
  • 12.11 Pass by address (part 2)
  • 12.12 Return by reference and return by address (参照返しとアドレス返し)
  • 12.13 In and out parameters (入力パラメータと出力パラメータ)
  • 12.14 Type deduction with pointers, references, and const (ポインタ、参照、constを用いた型推論) 22m
  • 12.15 std::optional 28m
  • 12.x Chapter 12 summary and quiz

Chapter 13: Compound Types: Enums and Structs (複合型:列挙型と構造体)

  • 13.1 Introduction to program-defined (user-defined) types (ユーザー定義型の紹介)
  • 13.2 Unscoped enumerations (非スコープ列挙型)
  • 13.3 Unscoped enumerator integral conversions (非スコープ列挙子の整数変換) 37m
  • 13.4 Converting an enumeration to and from a string (列挙型と文字列の相互変換) 15m
  • 13.5 Introduction to overloading the I/O operators (入出力演算子のオーバーロードの紹介) 10m
  • 13.6 Scoped enumerations (enum classes) (スコープ列挙型) 18m
  • 13.7 Introduction to structs, members, and member selection (構造体、メンバ、メンバ選択の紹介) 55m
  • 13.8 Struct aggregate initialization (構造体の集成体初期化)
  • 13.9 Default member initialization (デフォルトメンバ初期化)
  • 13.10 Passing and returning structs (構造体の受け渡しと返却)
  • 13.11 Struct miscellany (構造体に関する雑多な事項)
  • 13.12 Member selection with pointers and references (ポインタと参照を用いたメンバ選択) 18m
  • 13.13 Class templates (クラステンプレート) 22m
  • 13.14 Class template argument deduction (CTAD) and deduction guides (クラステンプレート引数推論) 20m
  • 13.15 Alias templates (エイリアステンプレート) 12m
  • 13.x Chapter 13 summary and quiz
  • 13.y Using a language reference (言語リファレンスの使用方法)

Chapter 14: Introduction to Classes (クラスの導入)

  • 14.1 Introduction to object-oriented programming (オブジェクト指向プログラミングの紹介) ok
  • 14.2 Introduction to classes (クラスの紹介)
  • 14.3 Member functions (メンバ関数)25m
  • 14.4 Const class objects and const member functions (constクラスオブジェクトとconstメンバ関数) 14m
  • 14.5 Public and private members and access specifiers (公開・非公開メンバとアクセス修飾子) 16m
  • 14.6 Access functions (アクセス関数) 10m
  • 14.7 Member functions returning references to data members 22m
  • 14.8 The benefits of data hiding (encapsulation) (カプセル化の利点) 4m
  • 14.9 Introduction to constructors (コンストラクタの紹介) 11m
  • 14.10 Constructor member initializer lists (コンストラクタのメンバイニシャライザリスト) 28m
  • 14.11 Default constructors and default arguments (デフォルトコンストラクタとデフォルト引数)
  • 14.12 Delegating constructors (委譲コンストラクタ)
  • 14.13 Temporary class objects (一時的なクラスオブジェクト)
  • 14.14 Introduction to the copy constructor (コピーコンストラクタの紹介) 33m
  • 14.15 Class initialization and copy elision (クラスの初期化とコピー省略) 6m
  • 14.16 Converting constructors and the explicit keyword (変換コンストラクタとexplicitキーワード) 22m
  • 14.17 Constexpr aggregates and classes 8m
  • 14.x Chapter 14 summary and quiz

Chapter 15: More on Classes (クラスについてさらに詳しく)

  • 15.1 The hidden “this” pointer and member function chaining (“this”ポインタとメンバ関数の連結) 20m
  • 15.2 Classes and header files (クラスとヘッダーファイル) 38m
  • 15.3 Nested types (member types) (ネストされた型) 27m
  • 15.4 Introduction to destructors (デストラクタの紹介) 7m
  • 15.5 Class templates with member functions (メンバ関数を持つクラステンプレート) 18m
  • 15.6 Static member variables (静的メンバ変数) 36m
  • 15.7 Static member functions (静的メンバ関数) 1h17m
  • 15.8 Friend non-member functions (フレンド非メンバ関数)
  • 15.9 Friend classes and friend member functions (フレンドクラスとフレンドメンバ関数)
  • 15.10 Ref qualifiers wip 2h10m
  • 15.x Chapter 15 summary and quiz

Chapter 16: Dynamic arrays: std::vector (動的配列:std::vector)

  • 16.1 Introduction to containers and arrays (コンテナと配列の紹介) 52m
  • 16.2 Introduction to std::vector and list constructors (std::vectorの紹介)
  • 16.3 std::vector and the unsigned length and subscript problem 36m
  • 16.4 Passing std::vector (std::vectorの受け渡し)
  • 16.5 Returning std::vector, and an introduction to move semantics
  • 16.6 Arrays and loops (配列とループ) ok
  • 16.7 Arrays, loops, and sign challenge solutions
  • 16.8 Range-based for loops (for-each) (範囲ベースforループ)
  • 16.9 Array indexing and length using enumerators
  • 16.10 std::vector resizing and capacity (std::vectorのサイズ変更と容量)
  • 16.11 std::vector and stack behavior (std::vectorとスタック動作) 15m
  • 16.12 std::vector
  • 16.x Chapter 16 summary and quiz

Chapter 17: Fixed-size arrays: std::array and C-style arrays (固定長配列)

  • 17.1 Introduction to std::array (std::arrayの紹介) 19m
  • 17.2 std::array length and indexing 12m
  • 17.3 Passing and returning std::array 5m
  • 17.4 std::array of class types, and brace elision 14m
  • 17.5 Arrays of references via std::reference_wrapper 20m
  • 17.6 std::array and enumerations 3m
  • 17.7 Introduction to C-style arrays (Cスタイル配列の紹介) 8m
  • 17.8 C-style array decay (配列からポインタへの崩壊) 20m
  • 17.9 Pointer arithmetic and subscripting (ポインタ演算と添字)
  • 17.10 C-style strings (Cスタイル文字列) 32m
  • 17.11 C-style string symbolic constants
  • 17.12 Multidimensional C-style Arrays (多次元Cスタイル配列) 10m
  • 17.13 Multidimensional std::array (多次元std::array) 10m
  • 17.x Chapter 17 summary and quiz

Chapter 18: Iterators and Algorithms (イテレータとアルゴリズム)

  • 18.1 Sorting an array using selection sort (選択ソート)
  • 18.2 Introduction to iterators (イテレータの紹介) 20m
  • 18.3 Introduction to standard library algorithms (標準ライブラリアルゴリズムの紹介) 43m
  • 18.4 Timing your code (実行時間の計測) 10m

Chapter 19: Dynamic Allocation (動的メモリ割り当て)

  • 19.1 Dynamic memory allocation with new and delete (newとdelete) 1h
  • 19.2 Dynamically allocating arrays (配列の動的割り当て)
  • 19.3 Destructors (デストラクタ)
  • 19.4 Pointers to pointers and dynamic multidimensional arrays ok
  • 19.5 Void pointers 7m

Chapter 20: Functions (関数 - 発展)

  • 20.1 Function Pointers (関数ポインタ) 30m
  • 20.2 The stack and the heap (スタックとヒープ) 1h
  • 20.3 Recursion (再帰) ok
  • 20.4 Command line arguments (コマンドライン引数) 13m
  • 20.5 Ellipsis (and why to avoid them) (省略記号) 18m
  • 20.6 Introduction to lambdas (anonymous functions) (ラムダ式の紹介) 52m
  • 20.7 Lambda captures (ラムダのキャプチャ) 25m
  • 20.x Chapter 20 summary and quiz [cite: 230]

Chapter 21: Operator Overloading (演算子のオーバーロード)

  • 21.1 Introduction to operator overloading (演算子のオーバーロードの紹介) 20m
  • 21.2 Overloading the arithmetic operators using friend functions 20m
  • 21.3 Overloading operators using normal functions ok
  • 21.4 Overloading the I/O operators (入出力演算子のオーバーロード) ok
  • 21.5 Overloading operators using member functions ok
  • 21.6 Overloading unary operators +, -, and ! ok
  • 21.7 Overloading the comparison operators ok
  • 21.8 Overloading the increment and decrement operators 5m
  • 21.9 Overloading the subscript operator 5m
  • 21.10 Overloading the parenthesis operator
  • 21.11 Overloading typecasts 20m
  • 21.12 Overloading the assignment operator 1h
  • 21.13 Shallow vs. deep copying (浅いコピーと深いコピー) 18m
  • 21.14 Overloading operators and function templates ok
  • 21.x Chapter 21 summary and quiz
  • 21.y Chapter 21 project

Chapter 22: Move Semantics and Smart Pointers (ムーブセマンティクスとスマートポインタ)

  • 22.1 Introduction to smart pointers and move semantics 36m
  • 22.2 R-value references (右辺値参照)
  • 22.3 Move constructors and move assignment (ムーブコンストラクタとムーブ代入) 2h
  • 22.4 std::move 8m
  • 22.5 std::unique_ptr wip 30m
  • 22.6 std::shared_ptr 5m
  • 22.7 Circular shared_ptr, and std::weak_ptr 40m
  • 22.x Chapter 22 summary and quiz

Chapter 23: Object Relationships (オブジェクト間の関係)

  • 23.1 Object relationships ok
  • 23.2 Composition (コンポジション) ok
  • 23.3 Aggregation (集約) ok
  • 23.4 Association (関連) ok
  • 23.5 Dependencies (依存) ok
  • 23.6 Container classes (コンテナクラス) ok
  • 23.7 std::initializer_list 10m
  • 23.x Chapter 23 summary and quiz ok

Chapter 24: Inheritance (継承)

  • 24.1 Introduction to inheritance (継承の紹介)
  • 24.2 Basic inheritance in C++ (C++における継承の基本)
  • 24.3 Order of construction of derived classes (派生クラスの構築順序) ok
  • 24.4 Constructors and initialization of derived classes 16m
  • 24.5 Inheritance and access specifiers (継承とアクセス修飾子) 20m
  • 24.6 Adding new functionality to a derived class ok
  • 24.7 Calling inherited functions and overriding behavior
  • 24.8 Hiding inherited functionality
  • 24.9 Multiple inheritance (多重継承) 5m
  • 24.x Chapter 24 summary and quiz

Chapter 25: Virtual Functions (仮想関数)

  • 25.1 Pointers and references to the base class of derived objects
  • 25.2 Virtual functions and polymorphism (仮想関数とポリモーフィズム)
  • 25.3 The override and final specifiers, and covariant return types
  • 25.4 Virtual destructors, virtual assignment, and overriding virtualization
  • 25.5 Early binding and late binding (静的結合と動的結合)
  • 25.6 The virtual table (仮想関数テーブル)
  • 25.7 Pure virtual functions, abstract base classes, and interface classes
  • 25.8 Virtual base classes (仮想基底クラス) 10m
  • 25.9 Object slicing (オブジェクトスライシング) 14m
  • 25.10 Dynamic casting (動的キャスト) 31m
  • 25.11 Printing inherited classes using operator
  • 25.x Chapter 25 summary and quiz

Chapter 26: Templates and Classes (テンプレートとクラス)

  • 26.1 Template classes (テンプレートクラス)
  • 26.2 Template non-type parameters
  • 26.3 Function template specialization (関数テンプレートの特化)
  • 26.4 Class template specialization (クラステンプレートの特化)
  • 26.5 Partial template specialization (部分特化)
  • 26.6 Partial template specialization for pointers
  • 26.x Chapter 26 summary and quiz

Chapter 27: Exceptions (例外処理)

  • 27.1 The need for exceptions (例外の必要性) 20m
  • 27.2 Basic exception handling (基本的な例外処理) ok
  • 27.3 Exceptions, functions, and stack unwinding (例外、関数、スタックの巻き戻し)
  • 27.4 Uncaught exceptions and catch-all handlers (全捕捉ハンドラ)
  • 27.5 Exceptions, classes, and inheritance (例外、クラス、継承)
  • 27.6 Rethrowing exceptions (例外の再送出)
  • 27.7 Function try blocks (関数tryブロック)
  • 27.8 Exception dangers and downsides (例外の危険性とデメリット)
  • 27.9 Exception specifications and noexcept (例外仕様とnoexcept) 12m
  • 27.10 std::move_if_noexcept wip 32m
  • 27.x Chapter 27 summary and quiz

Chapter 28: Input and Output (I/O) (入出力)

  • 28.1 Input and output (I/O) streams (入出力ストリーム)
  • 28.2 Input with istream
  • 28.3 Output with ostream and ios
  • 28.4 Stream classes for strings (文字列用ストリーム)
  • 28.5 Stream states and input validation (ストリームの状態と入力検証)
  • 28.6 Basic file I/O (基本的なファイル入出力)
  • 28.7 Random file I/O (ランダムファイルアクセス入出力)

Appendices (付録)

  • A.1 Static and dynamic libraries