『Cの延長としての C++ 入門 第2版』 | Programming Place Plus e-Book Project

トップページe-Book Project

Cの延長としての C++ 入門 第2版

ジャンル C++
レベル C言語を習得済みであること
出版日 2020年7月
価格 \400 (Kindle Unlimitied 読み放題対象)

Kindle の電子書籍は、Kindle専用端末の他、Windows、macOS、iOS、Android 向けの無料アプリを使って読むことができます。

無料サンプル

本書の一部(第0章、第1章)のみを無料で公開しています。

  • HTML版 (このまま Webブラウザ上で開きます。レイアウトは実際の本とは異なります)
  • mobi版 (Kindle本と同じ形式です)

概要

本書は、C言語の習得者に向けた、C++ の入門書です。 C言語を使った開発を経験されていることが望ましいですが、一般的な入門書を理解できていれば、読むことができるレベルだと思います。

本書の目的は、いつまでもC言語の世界に留まっていないで、C++ へ移行していただくことです。 C++ は「難しい」「複雑」「巨大」のような、移行を躊躇してしまうようなイメージが多いようです。 C言語に慣れた人の中には「オブジェクト指向」なんていう謎の考え方に馴染めないということで、移行できずにいる人もいるかも知れません。

C++ は、様々なプログラミングスタイルを許してくれる言語です。C++ はオブジェクト指向でプログラムを書くことを強制しませんし、C言語のようなスタイルでプログラムを書くことも許してくれます。 また、C++ に用意されている多数の機能は、その一部だけを導入することができますから、全体像を把握しないと使えないなんてこともありません。 要は、導入の進め方次第で、難易度は大きく変わるということです。

本書では、C言語の延長線上の考え方で導入できると思われる機能を優先して解説しています。 例えば、オブジェクト指向の考え方はほとんど登場しません。それでも C++ への移行には価値があることを示したいと思います。

※本書は、同名の著書の第2版です。 ※本書では、環境構築に関する説明は行っていません。 ※本書のサンプルプログラムは、VisualStudio 2017、gcc 7.1 で動作確認を行っています。

目次

  • 第0章 はじめに
    • 本書の内容
    • 初版との違い
    • コラムについて
    • C と C++ の歴史
    • コンパイラについて
    • C++ が難しいというのは本当か
    • C より C++ を使うべき理由
  • 第1章 基本的なこと
    • ファイルの拡張子
    • コンパイルの方法
      • Visual Studio
      • gcc
    • コメントのスタイル
    • 仮引数が空の場合の意味
    • main関数の末尾の return文の省略
    • タグ名の省略
    • ローカル変数を宣言する位置
  • 第2章 名前空間
    • 名前空間
      • 名前空間の外から名前を使うとき
      • 名前空間内で名前を使うとき
      • 別の名前空間の名前を使うとき
    • std名前空間
    • 名前空間の分割
    • usingディレクティブ
  • 第3章 型と定数
    • 積極的に const を使う
      • C と C++ の const の違い
      • ローカル変数を const にする
    • 文字と文字列のリテラルの型
      • 文字リテラル
      • 文字列リテラル
    • constexpr変数
      • オブジェクト形式マクロを避ける
    • 2進数リテラル
    • 桁区切り文字
    • キャスト
      • static_cast
      • const_cast
      • reinterpret_cast
    • 論理型
    • ヌルポインタの表現
  • 第4章 関数
    • 関数宣言
    • 関数オーバーロード
    • 関数テンプレート
      • テンプレート実引数を明示する
      • 関数テンプレートを定義する位置
    • 入出力機能
      • 標準出力ストリーム
      • 標準エラーストリーム
      • 標準入力ストリーム
    • 関数形式マクロを避ける
      • インライン関数
      • 関数テンプレートに置き換える
  • 第5章 クラス
    • クラスとは
    • アクセス指定
    • メンバ関数
      • クラスやメンバ関数の定義を書く位置
      • メンバ関数の定義をクラス定義内に書く
      • メンバ関数を使う理由
    • constメンバ関数
    • コンストラクタ
      • デフォルトコンストラクタ
      • メンバイニシャライザ
    • デストラクタ
    • 変数や関数以外のメンバ
  • 第6章 クラステンプレート
    • クラステンプレート
    • 標準ライブラリのクラステンプレート
      • std::basic_string
      • std::vector
      • std::list
      • std::stack
  • 第7章 動的なオブジェクトの生成
    • new と delete
    • new[] と delete[]
    • new や new[] が失敗したとき
    • RAII
      • delete の自動化
      • delete[] の自動化
  • 第8章 C との連携
    • C++ から C のコードを使う
      • 仮引数が char* になっている C の関数を呼び出す
    • stdio と iostream の連携
  • 第9章 乱数
    • <random>
    • 最も基本的な使い方
    • 乱数値の範囲を制御する
    • シード値の指定
  • あとがき
    • Programming Place e-Book Project



更新履歴



Programming Place e-Book Project のトップページへ

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
X で ポストフォロー LINE で送る noteで書く
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー
先頭へ戻る