目次
第1章 クラスの親戚=構造体
- 1-1 構造体の定義
- 1-1-1 構造体とは?
- 1-1-2 構造体のメンバ
- 1-1-3 構造体の用途
- 1-2 構造体の使い方
- 1-2-1 構造体は型である
- 1-2-2 メンバの取り扱い
- 1-2-3 構造体どうしの代入
- 1-3 構造体の配列
- 1-3-1 構造体の配列の用途
- 1-3-2 構造体の配列をメンバにする
- 1-4 構造体のポインタ
- 1-4-1 構造体のポインタの宣言
- 1-4-2 アロー演算子の使い方
- 1-5 構造体を引数として渡す
- 1-5-1 構造体のポインタを引数に渡す
- 1-5-2 構造体のポインタを戻り値で返す
第2章 オブジェクト指向プログラミングとクラスの基本
- 2-1 モノに注目するとは?
- 2-1-1 手続き型プログラミングで作成した「じゃんけんゲーム」
- 2-1-2 オブジェクト指向プログラミングで作成した「じゃんけんゲーム」
- 2-2 なぜオブジェクト指向なのか?
- 2-2-1 オブジェクト指向プログラミングのメリット
- 2-2-2 モデリングの考え方
- 2-3 構造体とクラスの違い
- 2-3-1 メンバ変数とメンバ関数
- 2-3-2 じゃんけんゲームの完全なコード
第3章 クラスとオブジェクト
- 3-1 クラスの定義
- 3-1-1 クラスを定義する構文
- 3-1-2 メンバ関数の実装
- 3-1-3 インライン関数
- 3-2 クラスの使い方
- 3-2-1 クラスとオブジェクトの違い
- 3-2-2 クラスの定義と実装を分ける場合
- 3-2-3 インライン関数を使った場合
- 3-2-4 クラスの定義と実装を1つのソースコードに書く場合
- 3-3 メンバ関数のオーバーロード
- 3-3-1 オブジェクト指向の三本柱
- 3-3-2 メンバ関数のオーバーロードによる多態性
- 3-3-3 オーバーロード活用の2つのパターン
- 3-4 オブジェクトを引数として渡す
- 3-4-1 オブジェクトの配列とポインタ
- 3-4-2 オブジェクトを引数や戻り値とする関数
第4章 カプセル化とコンストラクタ
- 4-1 カプセル化
- 4-1-1 アクセス指定子の種類と役割
- 4-1-2 カプセル化の目的
- 4-1-3 カプセル化活用の2つのパターン
- 4-2 コンストラクタとデストラクタ
- 4-2-1 コンストラクタの定義
- 4-2-2 コンストラクタのオーバーロード
- 4-2-3 デストラクタ
第5章 クラスの継承
- 5-1 クラスを継承するとは?
- 5-1-1 継承というクラスの使い方
- 5-1-2 protectedの機能
- 5-1-3 継承におけるアクセス指定子の役割
- 5-2 継承の活用方法
- 5-2-1 再利用としての継承
- 5-2-2 汎化と継承
- 5-3 継承におけるコンストラクタとデストラクタの取り扱い
- 5-3-1 コンストラクタとデストラクタは継承されない
- 5-3-2 引数を持つコンストラクタの呼び出し
第6章 メンバ関数のオーバーライドと多態性
- 6-1 メンバ関数のオーバーライド
- 6-1-1 基本クラスのメンバ関数を派生クラスでオーバーライドする
- 6-1-2 基本クラスのメンバ関数を呼び出す
- 6-2 メンバ関数のオーバーライドによる多態性
- 6-2-1 オブジェクト指向プログラミングの復習
- 6-2-2 オーバーライドで多態性を実現する
- 6-2-3 純粋仮想関数と抽象クラス
第7章 オブジェクトの作成と破棄
- 7-1 オブジェクトと一般的な変数の類似点
- 7-1-1 ローカルオブジェクトとグローバルオブジェクト
- 7-1-2 静的オブジェクト
- 7-2 静的メンバ変数
- 7-2-1 staticキーワードを指定したメンバ変数
- 7-2-2 オブジェクト数をカウントする
第8章 オブジェクトの動的な作成と破棄
- 8-1 動的オブジェクト
- 8-1-1 new演算子とdelete演算子の使い方
- 8-1-2 プログラム実行時のメモリの使われ方
- 8-2 集約
- 8-2-1 メンバオブジェクト
- 8-2-2 メンバオブジェクトのコンストラクタとデストラクタ
第9章 コピーコンストラクタとフレンド関数
- 9-1 コピーコンストラクタ
- 9-1-1 関数にオブジェクトを渡す場合の問題
- 9-1-2 コピーコンストラクタによる解決
- 9-1-3 オブジェクトを代入する場合の問題
- 9-2 フレンド関数
- 9-2-1 フレンド関数とは?
- 9-2-2 フレンド関数の活用方法
- 9-2-3 thisポインタ
第10章 その他のテクニック
- 10-1 演算子のオーバーロード
- 10-1-1 代入演算子のオーバーロード
- 10-1-2 算術演算子のオーバーロード
- 10-1-3 比較演算子のオーバーロード
- 10-1-4 フレンド関数を使って演算子をオーバーロードする
- 10-2 オブジェクト指向プログラミングの2つの技
- 10-2-1 テンプレートクラス
- 10-2-2 ダブルディスパッチ
- 10-3 三目並べゲームを作る
- 10-3-1 三目並べゲームの仕様
- 10-3-2 三目並べゲームのプログラム
付録 コンパイラの入手方法,インストール方法,コンパイル方法
- A-1 Visual Studio Community 2017の入手方法とインストール方法
- A-2 Visual Studio Community 2017を使ったコンパイル方法
- A-3 MinGWの入手方法とインストール方法
- A-4 MinGWを使ったコンパイル方法
確認問題
- 第1章 確認問題
- 第2章 確認問題
- 第3章 確認問題
- 第4章 確認問題
- 第5章 確認問題
- 第6章 確認問題
- 第7章 確認問題
- 第8章 確認問題
- 第9章 確認問題
- 第10章 確認問題
- 確認問題の解答
コラム
- COLUMN C言語のキモである構造体とポインタ
- COLUMN UMLからオブジェクト指向の考え方を知る
- COLUMN オブジェクト指向で最も重要なのは……
- COLUMN GoFデザインパターンからオブジェクト指向活用のポイントを知る
- COLUMN 継承はOCPを実践するものである
- COLUMN C++ならではの特徴である多重継承
- COLUMN スルドイあなたへ……
- COLUMN メモリリークに要注意!
- COLUMN 便利なstringクラス
- COLUMN C++の標準ライブラリのヘッダーファイルに拡張子がない理由