目次
- はじめに
- 01 まずは使い方
- 01-01 何はともあれまずは使い方を — 開発ツールの使い方
- 01-02 Say Hello to C++! — 文法の基本
- 01-03 計算してみよう — 計算のしかた
- 01-04 次のプログラムに移る前に — プロジェクトの管理
- 02 C++ の基本
- 02-01 値の保管所 — 変数の使い方
- 02-02 中身を変えよう — 変数を交えた演算
- 02-03 何か入れたら何か出た — 関数の作り方
- 02-04 なんにもなし — void 型
- 02-05 どこから見れる? — グローバル変数とローカル変数
- 02-06 その値は俺が決める — 入力
- 02-07 条件分岐 — if 文 (1)
- 02-08 もっと条件分岐 — if 文 (2)
- 02-09 グルグル回る — for 文 (1)
- 02-10 値の一括保管所 — 配列変数
- 02-11 一括保管所の巡回 — for 文 (2)
- 02-12 複雑に回る — for 文 (3)
- 02-13 もうひとつのループ — while 文、do–while 文
- 02-14 大脱出 — break 文、continue 文
- 02-15 どんどん条件分岐 — switch 文
- 03 ほんの少し深く
- 03-01 ビットとバイト — 型とキャスト
- 03-02 遠隔操作 — 参照 (1)
- 03-03 文字? 数値? — 文字コード
- 03-04 文字列って? — 文字列
- 03-05 文字列をいじろう — 文字列操作関数
- 03-06 どんな関数? — 関数プロトタイプ
- 03-07 ハメコミ合成 — #include
- 03-08 乱数っぽい何か — 疑似乱数
- 03-09 色んな計算を — 数学関数
- 03-10 同姓同名 — オーバーロード
- 03-11 もっとロジカルに — bool型
- 03-12 さらに条件分岐 — 条件式
- 04 ポインタ天国
- 04-01 メモリ町 1 番地 — メモリとアドレス
- 04-02 ポインタ天国 1 — ポインタ (1)
- 04-03 ポインタ天国 2 — ポインタ (2)
- 04-04 配列再考 — 配列とポインタ (1)
- 04-05 配列再々考 — 配列とポインタ (2)
- 04-06 1 + 1 = 5 ?? — アドレスの演算 (1)
- 04-07 配列とポインタの切っても切れない関係 — アドレスの演算 (2)
- 04-08 変えてくれるな 1 — const (1)
- 04-09 変えてくれるな 2 — const (2)
- 04-10 ポイントできないポインタ — ヌルポインタ
- 05 クラスの前に
- 05-01 配列の配列の配列の…… — 多次元配列 (1)
- 05-02 配列の配列の配列の配列の…… — 多次元配列 (2)
- 05-03 セットで宣言 1 — 構造体 (1)
- 05-04 セットで宣言 2 — 構造体 (2)
- 05-05 セットで宣言 3 — 構造体 (3)
- 05-06 A ? B ? それとも C ? — 列挙体
- 05-07 ? : ??? — 条件演算子 ? :
- 05-08 ナマケモノ 1 — デフォルト引数
- 05-09 関数内にこもりきり — 静的ローカル変数
- 05-10 どこまで有効? — 変数の寿命とスコープ
- 05-11 インドア派 vs アウトドア派 — リンケージ
- 05-12 仰山のファイル — 分割コンパイル (1)
- 05-13 文字通り — 文字列リテラル
- 05-14 逃げの一手 — エスケープシーケンス
- 05-15 借りたら返す 1 — new & delete (1)
- 05-16 借りたら返す 2 — new & delete (2)
- 05-17 借りたら返す 3 — new & delete (3)
- 06 クラスの基礎
- 06-01 とにかく作ってみよう — クラスの基本
- 06-02 オブジェクトを操作しよう — メンバ関数
- 06-03 オブジェクトを作ろう 1 — コンストラクタ
- 06-04 オブジェクトを作ろう 2 — 引数つきコンストラクタ
- 06-05 隠せ! — private アクセス指定子
- 06-06 オブジェクトを壊そう — デストラクタ
- 06-07 ファイルを分けよう — 分割コンパイル (2)
- 06-08 オブジェクトを複製しよう 1 — コピーコンストラクタ
- 06-09 オブジェクトを複製しよう 2 — 演算子オーバーロード
- 06-10 不動の構え 1 — const メンバ関数
- 07 クラスの本領
- 07-01 クラスの子孫 — 継承の基本
- 07-02 第 3 のアクセス指定子 — protected アクセス指定子
- 07-03 大体でいこう — アップキャスト
- 07-04 関数のすげ替え 1 — オーバーライドと仮想関数 (1)
- 07-05 関数のすげ替え 2 — オーバーライドと仮想関数 (2)
- 07-06 ピュア — 純粋仮想関数
- 07-07 派生と構築 1 — 継承とコンストラクタ (1)
- 07-08 派生と構築 2 — 継承とコンストラクタ (2)
- 07-09 派生と構築 3 — 仮想関数とコンストラクタ
- 07-10 所属を述べよ — スコープ解決演算子
- 07-11 オブジェクトを動的に作ろう — クラスの実体の動的確保
- 07-12 デストラクタ(仮) — 仮想デストラクタ
- 08 ファイルとストリーム
- 08-01 楽々文字列 1 — string クラス (1)
- 08-02 楽々文字列 2 — string クラス (2)
- 08-03 文字列を作ろう — stringstream クラス
- 08-04 ファイルのススメ 1 — ファイル操作の基本
- 08-05 ファイルのススメ 2 — ファイルの読み書き
- 08-06 テキストとバイナリ — オープンモード
- 08-07 2 進数と 16 進数と — N 進数
- 08-08 ファイルのススメ 3 — バイナリモードでの読み書き
- 08-09 ファイルのススメ 4 — ファイル操作のエラー処理
- 08-10 ここはどこ? — ファイルポインタ
- 08-11 流れを変えろ! — iostream とマニピュレータ
- 08-12 異姓同名 1 — 名前空間 (1)
- 08-13 異姓同名 2 — 名前空間 (2)
- 08-14 異姓同名 3 — 名前空間 (3)
- 09 テンプレート
- 09-01 そっくりさん製造工場 1 — 関数テンプレートの基礎 (1)
- 09-02 そっくりさん製造工場 2 — 関数テンプレートの基礎 (2)
- 09-03 そっくりさん製造工場 3 — 関数テンプレートの仕組み
- 09-04 そっくりさん製造工場 4 — 関数テンプレートの明示的呼び出し
- 09-05 そっくりさん製造工場 5 — 関数テンプレートの基礎 (3)
- 09-06 クラスの鋳型 1 — クラステンプレート (1)
- 09-07 クラスの鋳型 2 — クラステンプレート (2)
- 09-08 ナマケモノ 2 — デフォルトテンプレート引数
- 09-09 便利な配列 — vector
- 10 エラー処理と例外
- 10-01 飛んでいきな — goto 文
- 10-02 えっ!? 1 — 例外 (1)
- 10-03 えっ!? 2 — 例外 (2)
- 10-04 えっ!? 3 — 例外 (3)
- 10-05 えっ!? 4 — 例外 (4)
- 10-06 えっ!? 5 — 例外 (5)
- 10-07 色んな例外 — 標準例外クラスと例外指定
- 10-08 ここでも例外 — コンストラクタや例外処理中に投げられた例外
- 11 もっと高く
- 11-01 静かなるメンバ 1 — 静的メンバ変数 (1)
- 11-02 静かなるメンバ 2 — 静的メンバ変数 (2)
- 11-03 静かなるメンバ 3 — 静的メンバ関数
- 11-04 静かなるメンバ 4 — 静的メンバ定数
- 11-05 不動の構え 2 — メンバ定数
- 11-06 使い捨てオブジェクト 1 — テンポラリオブジェクト (1)
- 11-07 使い捨てオブジェクト 2 — テンポラリオブジェクト (2)
- 11-08 今、どこ? — 戻り値の型が参照な関数と演算子オーバーロード
- 11-09 代入式のリサイクル — 代入式を利用した演算
- 11-10 俺演算子 1 — 演算子オーバーロードと this;
- 11-11 俺演算子 2 — クラス外での演算子オーバーロード
- 11-12 暗黙の了解 — 暗黙のキャストとその抑制
- 11-13 七変化 — C++ のキャスト
- 12 もっともっと高く
- 12-01 ビットでいじろう 1 — AND
- 12-02 ビットでいじろう 2 — OR と XOR
- 12-03 ビットでいじろう 3 — NOT とビットシフト
- 12-04 ビットでフラグ 1 — ビットフラグ (1)
- 12-05 ビットでフラグ 2 — ビットフラグ (2)
- 12-06 速くて安全! 1 — インライン関数
- 12-07 速くて安全! 2 — インラインメンバ関数
- 12-08 シノニムを作ろう 1 — typedef (1)
- 12-09 シノニムを作ろう 2 — typedef (2)
- 12-10 マクロの手始め — マクロ
- 12-11 マクロの活用法 — マクロの使い方
- 12-12 マクロの正しい使い方 — マクロが原因のバグ
- 12-13 想定の範囲外 — assert マクロ
- 12-14 モードチェンジ — デバッグモードとリリースモード
- 13 もっと深く
- 13-01 多重継承事始 1 — 多重継承 (1)
- 13-02 多重継承事始 2 — 多重継承 (2)
- 13-03 融合 1 — 仮想継承 (1)
- 13-04 融合 2 — 仮想継承 (2)
- 13-05 融合 3 — 仮想継承 (3)
- 13-06 もぬけの殻 — インタフェースクラス
- 13-07 正体を暴け! — typeid 演算子と type_info
- 13-08 乱高下 — ダウンキャストとクロスキャスト
- 13-09 心の友 — フレンド
- 13-10 詳細は後述 — 不完全型
- 13-11 ちょっとこれ使わせて — using
- 13-12 風変わりな鋳型 — その他のテンプレート引数
- 13-13 特注の鋳型 — テンプレートの特殊化
- 13-14 関数ポインタ天国 — 関数ポインタ
- 13-15 メンバポインタ天国 — メンバ関数ポインタ (1)
- 13-16 メンバポインタ天国 — メンバ関数ポインタ (2)
- 13-17 メンバポインタ天国 — メンバ変数ポインタ
- 14 もっともっと深く
- 14-01 近道 — ショートサーキット
- 14-02 参照先は何もなし? — void へのポインタ
- 14-03 if... 1 — #if (1)
- 14-04 if... 2 — #if (2)
- 14-05 現状を報告せよ — 組み込みマクロ
- 14-06 お好きなだけどうぞ — 可変個引数
- 14-07 私はαでありωである 1 — main の戻り値
- 14-08 私はαでありωである 2 — コマンドライン引数
- 14-09 切り捨て御免 — 強制終了
- 14-10 みんな整列! — アラインメント
- 14-11 事前に解析 — プリコンパイル済みヘッダファイル
- 15 データ構造
- 15-01 数珠繋ぎ 1 — 単方向リスト
- 15-02 数珠繋ぎ 2 — 双方向リスト
- 15-03 ループを回せ! — イテレータとアルゴリズム
- 15-04 積んだり並んだり — スタックとキュー
- 15-05 不死鳥の舞 — placement new
- 15-06 call itself 1 — 再帰関数 (1)
- 15-07 call itself 2 — 再帰関数 (2)
- 15-08 call itself 3 — 再帰関数 (3)
- 15-09 大樹の如く 1 — ツリー
- 15-10 大樹の如く 1 — 二分探索木
- 15-11 魔法の数 — ハッシュ
- 16 C++ の落ち穂拾い
- 16-01 一心同体 — 共用体
- 16-02 Mr. John Doe — 無名構造体
- 16-03 精密作業 — ビットフィールド
- 16-04 伸縮自在 — 可変長配列メンバ
- 16-05 3, 2, 1, Go! — コンマ演算子
- 16-06 トークンを連結せよ — トークン連結演算子 ##
- 16-07 Tell my why. — 文字列化演算子 #
- 16-08 ポインタ天国・完 — 多次元配列へのポインタ
- 16-09 C±± — extern "C"
- 16-10 気まぐれな変数 — volatile
- 16-11 大暴投 — set_terminate, terminate
- 付録 A 標準ヘッダファイル一覧
- 付録 B 演算子一覧
- 付録 C C 言語と C++ の重要な相違点
- 付録 D Boost ライブラリ
- 付録 E 参考文献