標準プログラマーズ ライブラリシリーズC++効率的最速学習徹底入門

[表紙]C++効率的最速学習徹底入門

紙版発売

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 まとめ
  • さいごに
  • 索引