C++プログラミング入門 新版

[cover photo]
TOPICS
発行年月日
PRINT LENGTH
240
ISBN
978-4-87311-063-9
原書
C++: The Core Language
FORMAT
Print PDF
Ebook
3,080円
Ebookを購入する
Print
3,080円

1996年に発行以来、C++言語習得のための定番入門書となっていました、『C++ プログラミング入門』に、新たな情報の加筆、より理解しやすいように修正を加え新版として発行いたします。本書の特徴は、C言語プログラマがC++言語を修得することを念頭におき構成されているところです。必要不可欠なC++の基礎知識をコンパクトにわかりやすくまとめ、つまずきやすい落とし穴やプログラミングのコツを多数掲載しています。C++プログラミングの基礎を確実に速く習得するための必読の書です。

目次

監訳者まえがき
はじめに

1章 クラスを用いたオブジェクト指向プログラミング
        1.1 オブジェクト指向プログラミング
                1.1.1 抽象化
                1.1.2 カプセル化
                1.1.3 階層構造
                1.1.4 多態性(Polymorphism)
        1.2 クラス

2章 クラスを使用しないC++
        2.1 最初の3つの機能
                2.1.1 新しい形式のコメント
                2.1.2 struct、enumおよびunionタグが型名になる
                2.1.3 iostream:新しいI/Oライブラリ
        2.2 関数の変更
                2.2.1 関数宣言
                2.2.2 関数の多重定義
        2.3 厳密な型指定
                2.3.1 void*:総称的なポインタ
                2.3.2 0:ヌルポインタ
                2.3.3 char型を持つ文字リテラル
                2.3.4 enumとintの区別
        2.4 グローバル変数の動的初期化
        2.5 いくつかのまとめのリスト
                2.5.1 ファイル接尾語
                2.5.2 キーワードおよび識別子

3章 メンバ関数を用いた抽象化
        3.1 抽象化
        3.2 構造体の使用
                3.2.1 構造体の定義
                3.2.2 構造体の使用
        3.3 インタフェース関数を持つ構造体の使用
                3.3.1 インタフェース関数の宣言
                3.3.2 インタフェース関数の定義
                3.3.3 インタフェース関数の使用
                3.3.4 インタフェース関数についての懸念
        3.4 メンバ関数を持つクラスの使用
                3.4.1 メンバ関数の宣言
                3.4.2 メンバ関数の呼び出し
                3.4.3 メンバ関数の定義
                3.4.4 メンバ関数の多重定義

4章 アクセス指定子を用いたカプセル化
        4.1 アクセス指定子
        4.2 アクセスレベルを限定されないメンバ
        4.3 アクセス指定子の制限
        4.4 プライベートと不可視の違い
                4.4.1 偶然の事故に対するカプセル化による保護
                4.4.2 アクセスレベルを無視する多重定義の解析
        4.5 フレンドクラス
                4.5.1 協調して動作するクラスの例
                4.5.2 クラスの特別アクセスの付与

5章 包含と継承を用いた階層構造
        5.1 包含
        5.2 継承
                5.2.1 カプセル化と継承
                5.2.2 自動ポインタ変換
                5.2.3 メンバ関数の多重定義
                5.2.4 メンバ関数の上書き使用
        5.3 連鎖(chaining)

6章 コンストラクタおよびデストラクタを用いた優れた抽象化
        6.1 デフォルトコンストラクタ
                6.1.1 デフォルトコンストラクタの定義
                6.1.2 デフォルトコンストラクタの起動
                6.1.3 コンストラクタ中のコーディング
        6.2 デストラクタ
                6.2.1 デストラクタの定義
                6.2.2 デストラクタの起動
        6.3 組み込み型
        6.4 階層構造と連鎖
                6.4.1 クラス階層構造
                6.4.2 配列
        6.5 暗黙のデフォルトコンストラクタとデストラクタ
        6.6 連鎖でできないこと
        6.7 明示的な起動
        6.8 フロー制御
        6.9 呼び出しの時期
                6.9.1 自動ローカルオブジェクト
                6.9.2 静的ローカルオブジェクト
                6.9.3 グローバルオブジェクト
                6.9.4 静的オブジェクト

7章 newとdeleteを用いた優れた抽象化
        7.1 動的オブジェクト
        7.2 動的配列
        7.3 割り当て機能の混在
        7.4 realloc( )
        7.5 メモリ不足

8章 参照
        8.1 パラメータと引数
        8.2 C、C++における値渡し
        8.3 C++における参照渡し
        8.4 参照とポインタ
        8.5 C++における参照戻し
        8.6 多重定義:参照と値
        8.7 バインディングの問題

9章 他の特別なメンバ関数を用いた優れた抽象化
        9.1 代入演算子
                9.1.1 代入演算子の定義
                9.1.2 暗黙の代入演算子
                9.1.3 演算子の多重定義と参照
        9.2 コピーコンストラクタ
                9.2.1 コピーコンストラクタの定義
                9.2.2 暗黙のコピーコンストラクタ
                9.2.3 暗黙のデフォルトコンストラクタの防止
                9.2.4 オブジェクトの値渡し
                9.2.5 オブジェクトの値戻し
                9.2.6 コピー防止
        9.3 オブジェクトのプリント
                9.3.1 プリントメンバ関数print( )
                9.3.2 プリント演算子
                9.3.3 プリントメンバ関数の連鎖
        9.4 まとめ

10章 クラスの例
        10.1 intの使用
        10.2 静的配列の使用
        10.3 動的配列の使用
        10.4 参照カウント文字列の使用
        10.5 コピーコンストラクタの練習問題
        10.6 まとめの表

11章 テンプレートを用いた優れた階層構造
        11.1 テンプレートの定義
        11.2 テンプレートを使用したオブジェクトの定義
        11.3 慎重な扱いを要する展開
        11.4 コンテナクラス要素の修正

12章 仮想関数を用いた多態性
        12.1 Cにおける多態性
                12.1.1 関数形式のマクロを用いた多態性
                12.1.2 ポインタを用いた多態性
                12.1.3 型フィールドおよびunionを用いた多態性
        12.2 仮想関数
        12.3 C++における多態性
        12.4 仮想関数の詳細
                12.4.1 仮想関数の宣言
                12.4.2 仮想関数の動的起動
                12.4.3 仮想関数の静的起動

13章 多態性の応用
        13.1 抽象クラス
                13.1.1 抽象基底クラスの統合
        13.2 継承の決定
        13.3 仮想の決定
                13.3.1 仮想デストラクタを必要とする多態クラス
                13.3.2 仮想プリントメンバ関数を必要とする多態性
                13.3.3 メンバ関数のまとめ
        13.4 コンストラクタおよびデストラクタからの仮想関数の呼び出し
        13.5 内部表現
        13.6 落し穴
                13.6.1 型フィールド
                13.6.2 下方キャスト
                13.6.3 オブジェクトからのすべての継承

14章 オブジェクト指向設計の実装
        14.1 実装テーブル
        14.2 例
        14.3 Is-A、Has-A
        14.4 防衛的実装

15章 プログラム例
        15.1 Stringクラス
        15.2 Ruleクラス、CwRuleクラスおよびHwRuleクラス
        15.3 Scannerクラス
        15.4 プログラムの使用方法
        15.5 プログラムコード

16章 次に学習すること
        16.1 const
        16.2 inline
        16.3 パラメータを用いたコンストラクタ
        16.4 メンバ初期化リスト
        16.5 効果的なコピーコンストラクタ
        16.6 特別なメンバ関数

付録A C++演算子
付録B 値戻しに伴う1つの問題
参考文献
索 引