標準プログラマーズ ライブラリシリーズC++効率的最速学習徹底入門
2002年7月5日紙版発売
柏原正三 著
B5変形判/512ページ
定価2,838円(本体2,580円+税10%)
ISBN 4-7741-1514-2
ただいま弊社在庫はございません。
書籍の概要
この本の概要
本書は,すでにC言語になれ親しんでいるプログラマが,新たにC++言語を学ぼうとする時に,お役に立ちます。CプログラマのC++言語マスターへの最短経路を提示するものとなっています。
こんな方におすすめ
- C言語は既に使っているので、C++の入門書はまわりくどい
- 何冊かC++入門書を読んだが、どうもC言語から抜けられない
- そもそもクラスとかC++の新要素はいらないんじゃないかと思っている
著者の一言
本書の執筆を終えた時,何やら格別な爽快感を覚えた。出来上がった本書を読んでみて,さらにその爽快感は増した。こうして「目を覚ましたC++」が世に出ることになった。タイトルは「C++効率的最速学習徹底入門」である。
本書を読まれる場合は,完全に読み終えるまでは,一切のよそ見をしないで欲しい。よそ見をしたくなれば,一冊のノートにその旨を記しておき,読了後にそれを見直してみるとよいかも知れない。とにかく,本書の全ページを最初から食べてしまうつもりで読んで欲しい。私も,もう一度,そうしてみようと思う。
目次
第1章 プログラミングパラダイムのインクリメント
- 1-1 C++言語とは
- 1-2 なぜオブジェクト指向プログラミングなのか
- 1-3 プロシージャ指向からオブジェクト指向に切り替える
- 1-4 C++のオブジェクト指向の概念を理解する
- 1-4-1 クラスカプセル化と可視性とは
- 1-4-2 関数オーバーロードと演算子オーバーロードとは
- 1-4-3 再利用とクラスの継承とは
- 1-4-4 仮想関数とポリモーフィズムとは
- 1-5 まとめ
第2章 C++のテクニカルなインクリメント
- 2-1 CとC++の基本的な違いとは
- 2-2 ネームスペースの概念を導入する
- 2-2-1 ネームスペースの定義
- 2-2-2 usingディレクティブ用法
- 2-2-3 using宣言用法
- 2-2-4 無名ネームスペースとファイルスコープ
- 2-3 extern "C" リンケージ指定
- 2-4 まとめ
第3章 C++プログラミングことはじめ
- 3-1 C++プログラムの感触を得る
- 3-1-1 C++プログラムのソースファイル
- 3-1-2 MyCppプログラムの詳細
- 3-1-3 もう1つのC++プログラム
- 3-2 C++の標準入出力ストリームを使う
- 3-2-1 C++の定義済み標準入出力ストリーム
- 3-2-2 標準入出力ストリーム取り扱いの基本
- 3-3 入出力マニピュレータを使う
- 3-3-1 入出力マニピュレータとは
- 3-3-2 入出力マニピュレータの使い方
- 3-3-3 入出力マニピュレータを使ってみる
- 3-3-4 書式フラグを使って設定状態を変更する方法
- 3-3-5 fixedマニピュレータの設定を解除してみる
- 3-3-6 setiosflags()とresetiosflags()を使ってみる
- 3-4 C++ライブラリの構成
- 3-5 まとめ
第4章 C++の基本事項
- 4-1 C++のキーワード
- 4-2 C++の識別子
- 4-3 C++の基本データ型
- 4-3-1 C++の基本型
- 4-3-2 C++のbool型
- 4-3-3 char型とwchar_t型と漢字文字の取り扱い
- 4-4 C++の複合データ型
- 4-4-1 C++の列挙型
- 4-4-2 C++の共用体型
- 4-4-3 無名共用体とC++の共用体
- 4-4-4 C++の構造体型とクラス型
- 4-4-5 C++のクラス型変数の特別な意味
- 4-4-6 BitTesterクラス型のオブジェクト
- 4-4-7 ユーザー定義型とは
- 4-5 C++の関数
- 4-5-1 関数のプロトタイプ宣言
- 4-5-2 仮引数の明記と省略記述
- 4-5-3 同じ名前の関数のバリエーション定義
- 4-5-4 関数のデフォルト引数用法
- 4-5-5 インライン関数
- 4-6 C++の演算子
- 4-6-1 C++の固有の演算子
- 4-6-2 C++に固有の演算子の概要
- 4-7 まとめ
第5章 ポインタと参照とオブジェクトの保護
- 5-1 参照とは何か
- 5-1-1 参照と参照変数の意味
- 5-1-2 参照変数とポインタ変数との違い
- 5-2 値渡しと参照渡し
- 5-2-1 引数引き渡し方法の意味の違い
- 5-2-2 戻り値引き渡し方法の意味の違い
- 5-2-3 参照とポインタの意味の違い
- 5-3 const修飾子とオブジェクトの保護
- 5-3-1 変数のconst宣言
- 5-3-2 constの参照変数と参照先変数との関係
- 5-3-3 constポインタの宣言
- 5-3-4 const参照するポインタの宣言
- 5-3-5 関数の戻り値のconst宣言
- 5-3-6 関数の仮引数のconst宣言
- 5-3-7 クラスメンバ関数のconst宣言
- 5-3-8 mutable修飾子
- 5-4 まとめ
第6章 C++の2種類の文字列とstringクラス
- 6-1 stringクラスの文字列とCの文字列
- 6-1-1 stringクラスを使ってみる
- 6-1-2 stringクラス文字列とC文字列間の相互変換
- 6-2 stringオブジェクトの構築と破棄
- 6-2-1 コンストラクタとデストラクタ呼び出しのしくみ
- 6-2-2 stringオブジェクトの構築方法
- 6-2-3 newとdeleteとstringオブジェクトの破棄
- 6-3 stringクラスのメンバ関数を使う
- 6-3-1 文字列を編集する
- 6-3-2 添え字演算子と探索,抽出メンバ関数を使う
- 6-4 stringクラスの非メンバ関数を使う
- 6-4-1 メンバ演算子関数呼び出しのしくみ
- 6-4-2 文字列の連結と比較関数を使う
- 6-5 stringクラスの例外
- 6-6 テンプレートことはじめ(1)
- 6-6-1 テンプレートとは
- 6-6-2 テンプレート関数を定義する
- 6-6-3 型の特定とは
- 6-7 まとめ
第7章 クラスの概念とクラス型のオブジェクト
- 7-1 クラスカプセル化とは
- 7-1-1 クラスカプセル化と情報隠蔽(Information Hiding)
- 7-1-2 クラスメンバの可視性制御
- 7-1-3 初期化リストとは
- 7-1-4 フレンド宣言とクラスカプセル化の特例
- 7-2 クラスのstatic属性のメンバ
- 7-2-1 クラスインスタンス間の共有データ
- 7-2-2 thisポインタとは
- 7-2-3 staticなメンバ関数と共有データの保護
- 7-3 Cプログラムを段階的にC++に移行する方法
- 7-3-1 リバースアルゴリズムを実装する
- 7-3-2 大文字/小文字変換アルゴリズムを実装する
- 7-4 テンプレートことはじめ(2)
- 7-4-1 テンプレートクラスを定義する
- 7-4-2 テンプレートクラスを使う
- 7-5 まとめ
第8章 クラスの重要なテーマとアルゴリズムの実装
- 8-1 コピーコンストラクタとコピー代入演算子関数
- 8-1-1 デフォルトのコピーコンストラクタとは
- 8-1-2 コピーコンストラクタを実装してみる
- 8-1-3 デフォルトのコピーコンストラクタの問題
- 8-1-4 問題点を解明する
- 8-1-5 正しいコピーコンストラクタを実装する
- 8-2 コピー代入演算子関数とは
- 8-2-1 暗黙のコピー代入演算子の問題
- 8-2-2 正しいコピー代入演算子関数を実装する
- 8-3 MyDynamicNodeクラスを作ってみる
- 8-4 intバージョンのMyDequeueクラスを作ってみる
- 8-5 まとめ
第9章 演算子のオーバーロード
- 9-1 演算子のオーバーロードとは
- 9-1-1 演算子関数(operatorXXX())とは
- 9-1-2 演算子関数の2つの実装形態
- 9-1-3 なぜ演算子関数なのか
- 9-1-4 オーバーロードできない演算子
- 9-1-5 Dataというクラスを定義する
- 9-2 二項演算子のオーバーロード
- 9-2-1 四則演算関数と四則演算代入関数のオーバーロード
- 9-2-2 クラスの関係演算子のオーバーロード
- 9-3 単項演算子のオーバーロード
- 9-3-1 前置きと後置き演算子の違い
- 9-3-2 インクリメント/デクリメント演算子のオーバーロード
- 9-4 非メンバの二項演算子のオーバーロード
- 9-5 Dataクラス定義と関連定義の全容
- 9-6 STLことはじめ(1)
- 9-6-1 operator()()演算子関数を実装する
- 9-6-2 配列要素にSTLアルゴリズムを適用してみる(1)
- 9-6-3 配列要素にSTLアルゴリズムを適用してみる(2)
- 9-7 まとめ
第10章 クラスの継承
- 10-1 OOPの再利用の2つの形態
- 10-1-1 has-aの関係の再利用のしかた
- 10-1-2 is-aの関係の再利用のしかた
- 10-2 仮想関数と実行時ポリモーフィズム
- 10-2-1 事前バインディングとは
- 10-2-2 実行時バインディングとは
- 10-3 純粋仮想関数と抽象クラスとインターフェイス
- 10-3-1 MyDequeueクラスのテンプレートバージョンを作る
- 10-3-2 MyDequeueクラスを抽象クラスに変更する
- 10-3-3 MyStack派生クラスを定義する
- 10-3-4 MyQueue派生クラスを定義する
- 10-4 多重継承
- 10-4-1 多重継承の簡単な用例
- 10-4-2 もう1つの曖昧さのテーマ
- 10-5 STLことはじめ(2)
- 10-5-1 STLの単項関数オブジェクトと二項関数オブジェクト
- 10-5-2 二項比較述語を作成する
- 10-5-3 STLのコンテナと反復子を使う
- 10-6 まとめ
第11章 例外と実行時型識別(RTTI)
- 11-1 例外とは
- 11-1-1 なぜ例外なのか
- 11-1-2 C++例外のしくみ
- 11-1-3 catchブロックの対処コード
- 11-2 未処理の例外と予期しない例外とは
- 11-2-1 未処理の例外
- 11-2-2 terminate()関数の振る舞いを変更するには
- 11-2-3 例外指定とは
- 11-2-4 予期しない例外
- 11-2-5 unexpected()関数の振る舞いを変更するには
- 11-3 標準例外
- 11-3-1 標準ライブラリの投入する標準例外
- 11-3-2 stringクラスの標準例外を捕捉する
- 11-3-3 C++演算子が投入する標準例外
- 11-3-4 new演算子の厳密な取り扱い
- 11-3-5 bad_alloc例外の捕捉を体験する
- 11-4 実行時型識別とキャスト演算子
- 11-4-1 typeid演算子
- 11-4-2 type_infoクラスとそのメンバ関数
- 11-4-3 C++のRTTIを使ってみる
- 11-4-4 dynamic_cast演算子
- 11-4-5 const_cast演算子
- 11-4-6 reinterpret_cast演算子
- 11-5 まとめ
第12章 ファイル入出力ストリームと入出力反復子の使い方
- 12-1 ファイル入出力ストリームの取り扱い
- 12-1-1 ファイルのオープンとクローズ
- 12-1-2 デフォルトのテキストモードとモード指定
- 12-1-3 ファイルデータを取り扱ういくつかの方法
- 12-2 ファイル入出力ストリームを使う
- 12-2-1 >>演算子と<<演算子を使う
- 12-2-2 read()とwrite()メンバ関数を使う
- 12-2-3 整形付きgetline()とget()メンバ関数を使う
- 12-2-4 ファイルをシークする
- 12-3 クラスのストリーム入出力を実現する
- 12-3-1 クラスの入出力先を変更する
- 12-3-2 MyDynamicNodeクラスの出力先を変更する
- 12-3-3 入出力演算子をオーバーロードする
- 12-4 STLコンテナのストリーム入出力を実現する
- 12-4-1 ストリーム入出力反復子とSTL反復子の基本
- 12-4-2 反復子を使ったコンテナ要素の標準入出力
- 12-4-3 反復子を使ったコンテナ要素のファイル入出力
- 12-5 まとめ
- さいごに
- 索引