Visual C++ 2013 パーフェクトマスター

概 要

Visual C++プログラミングを実際にプログラムを作りながら覚えられるフルカラー解説書です。Microsoftの統合開発環境Visual Studio 2013に搭載されているVisual C++は、標準C++言語を使ったプログラミングとWindowsストアアプリ開発用に標準C++を拡張したC++/CXに対応しており、高速動作するアプリの開発に向いています。本書は、Visual Studioの無料版であるVisual Studio Express2013をベースに初心者でもよくわかるように、標準C++言語の基本をていねいに説明したあと、拡張言語であるC++/CXの解説、さらにWindowsストアアプリの開発といった応用へとステップアップしながら解説していきます。ソースコードのダウンロードサービス付きです。

著者 金城俊哉
価格 本体2800円(税別)
ISBN 978-4-7980-4069-1
発売日 2014/3/7
判型 B5変
色数 4色
ページ数 828
CD/DVD
対象読者 初級
シリーズ パーフェクトマスター
表紙イメージ
購入 アマゾンで購入する
楽天で購入する

※リンク先によっては、販売ページが用意されていないことがあります。あらかじめご了承ください。

新しいウィンドウで開く 書籍購入のご案内

サポート

サポート情報は以下からご参照下さい。

サポート情報へのリンク

目次

Chapter 1 VisualC++の概要と開発環境の準備

1.1 VisualC++の特徴

1.1.1 標準C++

標準C++の特徴を知る

コラム 型システム

C++の歴史を見る

コラム 静的な型システム

1.1.2 Microsoft社のVisualC++

VisualC++が持つ二つの顔

ネイティブプログラミングとは

高速実行を実現するネイティブプログラミング

コラム C++マネージ拡張からC++/CLI、C++/CXへの流れ

1.2 Visual Studio Express 2013 for Windows Desktopのダウンロードとインストール

1.2.1 Visual Studio Express 2013 for Windows Desktopのダウンロードとインストール

コラム ライセンスの更新

コラム Visual Studio Express 2013 for Windows Desktopの起動

VS Studio Express 2013 for Windows Desktopの構造を見る

1.3 プロジェクトとソリューション

1.3.1 プロジェクトの作成とプログラムの作成

空のプロジェクトを作成する

ソースファイルを追加する

コラム プロジェクトとソリューション

1.3.2 プログラムコードの入力

プログラムコードを入力する

コラム プロジェクトの保存先

プログラムを実行する

コンソールウィンドウが消えないようにする(C++)

コラム 出力ウィンドウ

1.3.3 プロジェクトの保存と終了

プロジェクトを保存する

プロジェクトを終了する

作成済みのプロジェクトを開く

1.4 プログラムコードの書き方

1.4.1 C++プログラムの構造

「#include <iostream>」によるヘッダーファイルの読み込み

コラム プリプロセッサ

コラム ヘッダーファイル

「using namespace std;」によるネームスペースの指定

一番最初に実行される「int main()」関数

文字列を表示する

「return 0;」で関数を終了する

コラム ステートメント

コラム iostream

1.4.2 C++コードの書き方

コードを記述する

コラム トークンとリテラル

コメントを記述する

1.4.3 エスケープシーケンス

エスケープシーケンスについて知る

エスケープシーケンスを利用したプログラムを作成する

コラム パス名を表記するときの注意

1.4.4 数値リテラル

数値リテラルの種類を見る

浮動小数点リテラルで数値を表示するプログラムを作成する

1.4.5 四則演算

1.5 ヘルプの活用

1.5.1 !キーによるヘルプのクイック表示

!キーでヘルプを表示する

1.5.2 ヘルプビューワーの利用

必要なヘルプデータをヘルプビューワーにダウンロードする

ヘルプビューワーで検索する

コラム Visual Studioの入力支援機能

コラム VisualC++のリファレンスを表示する

Chapter 2 C++の基本

2.1 変数

2.1.1 変数の役割と使い方

変数の役割

変数を宣言する

変数に値を代入する

変数の値を画面に出力する

2.1.2 変数の初期化

変数を初期化する

2.1.3 変数に格納されている値の変更

変数の値を変更する

変数の値を変化させるプログラムを作成する

コラム データ型の指定方法

コラム インクリメントとデクリメント

コラム 変数を宣言する位置

2.2 データ型

コラム 符号を使う

コラム signedの省略

2.2.1 データ型の種類

データ型の種類

コラム 型修飾子と宣言指定子

コラム 浮動小数点の仕組み

2.2.2 データ型の指定が必要な理由

データ型の指定が必要な理由を探る

2.2.3 変数を利用した計算プログラムの作成

変数を利用した計算プログラムを作成する

コラム 入力を行うcin

コラム 相対アドレス

2.2.4 typedefによるデータ型の指定

typedefによるデータ型名の置き換え

コラム C++のデータ型

2.3 定数

2.3.1 定数の使い方

定数を使うメリット

定数の初期化を行う

2.3.2 定数を利用したプログラムの作成

定数を利用した計算プログラムを作成する

コラム 変数のスコープと変数の寿命

2.4 データ型のキャスト

コラム 符号の指定が可能な整数型

2.4.1 自動型変換(暗黙の型変換)

精度の高いデータ型に代入する場合の自動型変換

精度の低いデータ型に代入する場合の自動型変換

異なるデータ型同士の演算を行う場合の自動型変換

整数型同士の演算で小数を含む結果が出た場合の自動型変換

暗黙の型変換の検証結果をまとめる

2.4.2 強制型変換(明示的型変換)

キャストを行う

コラム キャストに潜む危険性

2.5 標準入出力

2.5.1 標準出力

標準出力を使って文字を出力する

コラム ストリームの実体

コラム 標準ストリームを操作する「リダイレクト」

2.5.2 標準入力

標準入力を使って値を取得する

コラム ユーザーインターフェイス

2.6 ファイルのインクルード

2.6.1 ファイルをインクルードする仕組み

ファイルをインクルードする

コラム iostreamで使用できるオブジェクト

自動インクルード

コラム ヘッダーファイルの名前空間への対応

2.6.2 ヘッダーファイルの作成とインクルード

ヘッダーファイルの作成

自作のヘッダーファイルをインクルードするプログラムの作成

コラム 演算子を連続で記述する場合

2.7 関数の作成と利用

2.7.1 関数の定義

関数を定義する方法

関数を定義する

コラム 数学における関数とプログラムにおける関数の違い

2.7.2 関数の呼び出し

関数を呼び出す

Chapter 3 演算子の働き

3.1 演算子の種類と働き

コラム カッコの使い方

3.1.1 算術演算子

算術演算子の種類と使い方

コラム 演算子とアルゴリズム

3.1.2 代入演算子

代入演算子の種類と使い方

コラム 主な演算子の数式内における計算順序

コラム 多重代入

3.1.3 インクリメント/デクリメント演算子

インクリメント/デクリメント演算子の種類と使い方

インクリメント演算子を使用したプログラムの作成

3.1.4 シフト演算子

シフト演算子の種類と使い方

コラム 2進数

コラム 負の数の表現

シフト演算を行うプログラムの作成

コラム 補数を使うメリット

3.1.5 関係演算子

関係演算子の種類と使い方

3.1.6 等価演算子

等価演算子の種類と使い方

3.1.7 論理演算子

論理演算子の種類と使い方

論理演算子を使用したプログラムの作成

コラム 「-125」、「-32」を2の補数を使って表現する

3.1.8 ビット演算子

ビット演算子の種類と使い方

ビット演算を行うプログラムの作成

3.1.9 カンマ演算子 複数の式の単文化

カンマ演算子を使う

3.1.10 sizeof演算子

sizeof演算子を使う

変数のサイズを調べるプログラムの作成

3.1.11 ポインター演算子

ポインター演算子の種類と使い方

3.1.12 メンバーポインター演算子

メンバーポインター演算子の種類と使い方

コラム sizeof演算子の使い道

メンバーポインター演算子を使用したプログラムの作成

3.1.13 条件演算子

条件演算子の使い方

コラム 演算子の種類と働き

コラム 2進数、8進数、10進数、16進数の関係

Chapter 4 制御構造

4.1 条件分岐構造

4.1.1 条件分岐構造の種類

条件分岐構造の種類

条件式で使用する演算子

4.1.2 ifステートメント

ifステートメントの使い方

ifを使用したプログラムを作成する

コラム 条件式の簡易表記

4.1.3 if...elseステートメント

if...elseステートメントの使い方

コラム ブロック

if...elseを使用したプログラムを作成する

4.1.4 if...else if...elseステートメント

if...else if...elseステートメントの使い方

if...else if...elseを使用したプログラムを作成する

コラム ifステートメントにおけるelse ifの扱い

コラム trueとfalse

4.1.5 論理演算子を利用した条件分岐

論理演算子の種類

論理演算子を使用したプログラムの作成

4.1.6 条件演算子を利用した条件分岐

条件演算子を使う

条件演算子を使用したプログラムの作成

コラム 論理演算子の優先順位と処理順序

4.1.7 switchステートメント

switchステートメントを使う

switchを使ったプログラムを作成する

4.1.8 gotoステートメント

gotoステートメントの使い方

gotoステートメントを使用したプログラムの作成

4.2 繰り返し構造

4.2.1 繰り返し構造の種類

繰り返し構造の種類

4.2.2 whileステートメント

whileステートメントの使い方

whileステートメントを使用したプログラムの作成

コラム 条件が最初から偽(false)の場合の処理

コラム volatile修飾子

4.2.3 do...whileステートメント

do...whileステートメントの使い方

コラム C++におけるループ処理とは?

ループ処理を最低1回は行うプログラムの作成

4.2.4 forステートメント

forステートメントの使い方

コラム for文の繰り返し処理を見る

forステートメントを使用したプログラムの作成

4.2.5 breakステートメント

breakステートメントの使い方

breakステートメントを使用したプログラムの作成

コラム Ifステートメントの基本形は

4.2.6 continueステートメント

continueステートメントの使い方

continueステートメントを使用したプログラムの作成

Chapter 5 配列の利用

5.1 配列

5.1.1 配列の使い方

配列を使うメリット

コラム インデックス値の指定

配列を宣言する

配列に値を代入する

コラム 配列のインデックス

配列の初期化

配列を使用したプログラムの作成

コラム 2次元配列をイメージしてみる

キーボードから入力された値を配列へ代入する

平均点を求めるプログラム

コラム マクロとは?

5.1.2 動的配列

動的配列の使い方

コラム プリプロセッサ

5.2 多次元配列

5.2.1 2次元配列

2次元配列の使い方

配列のアドレスを調べる

2次元配列の要素に値を代入する

2次元配列の初期化

2次元配列を使用したプログラムの作成

5.2.2 3次元配列

3次元配列の使い方

3次元配列の初期化

5.3 文字配列

5.3.1 配列を利用した文字列の処理

文字列を扱う配列の宣言と文字列の代入

文字列を扱う配列の初期化

文字コードを調べる

配列に代入した文字列を表示するプログラムの作成

コラム Shift-JISや日本語EUCの場合

コラム ASCII

コラム 日本語で使われる文字コード

5.3.2 文字列の操作

文字列を操作する関数を使えるようにする

文字列をコピーする

文字列を追加する

文字列の長さを調べる

文字列を比較する

文字を検索する

5.3.3 多次元配列を使った文字列の操作

多次元配列を使用して文字列を操作する

5.3.4 日本語の文字列を操作する

マルチバイト文字の扱い

ワイド文字を扱う

コラム プリプロセッサを使いこなす

Chapter 6 関数の利用

6.1 関数の作成と呼び出し

6.1.1 関数の定義

関数を定義する

戻り値を指定する

6.1.2 関数の呼び出し

関数を呼び出す

複数のパラメーターを持つ

コラム 再起コール

引数も戻り値もない関数

引数のキャスト

コラム パラメーター名の省略

6.2 関数プロトタイプ

6.2.1 関数プロトタイプの使い方

関数プロトタイプの構造

関数プロトタイプの宣言

関数プロトタイプを使うメリット

コラム デフォルト値を設定する場所

関数プロトタイプを使うプログラムの作成

6.2.2 デフォルト引数

デフォルト引数を使う

6.3 インライン関数

6.3.1 インライン関数の機能

インライン関数の使い方

インライン関数の定義場所

コラム デフォルト引数を使ったプログラムの構造

6.3.2 インライン関数を利用したプログラムの作成

インライン関数を利用したプログラムを作成する

コラム インライン化のメリット、デメリット

コラム 引数の省略記号

6.4 ローカル変数とグローバル変数

6.4.1 ローカル変数とグローバル変数の特徴

ローカル変数とグローバル変数の違い

コラム グローバル変数の値を動的に決定する

autoによる初期化

コラム スコープとリンケージ

コラム register

6.4.2 静的ローカル変数

静的ローカル変数を使う

静的ローカル変数のアドレスを確認する

静的ローカル変数の初期化を確認する

6.4.3 プロジェクト内におけるグローバル変数の利用

プロジェクト内のグローバル変数を使う

他のファイルのグローバル変数を使う

コラム インライン関数内の変数

コラム staticなグローバル変数

コラム staticな関数

6.4.4 変数の寿命とスコープ

変数の宣言位置によるスコープの違い

if、for、while、switchにおける変数のスコープと寿命

ブロック内のスコープ

関数内で宣言された変数のアドレスを確認する

パラメーターのスコープ

スコープ解決演算子

6.5 関数へ引数を渡す3つの方法

6.5.1 値渡し

値渡しによる関数呼び出し

6.5.2 参照渡し

参照渡しによる関数呼び出し

6.5.3 ポインター渡し

6.5.4 関数に配列を渡す

コラム 配列のサイズを明示的に渡す

コラム inlineによるインライン化の実態

コラム リンケージ

コラム 関数に定数を渡す

コラム 多次元配列を関数に渡す

6.6 戻り値を取得する3つの方法

6.6.1 戻り値を生データで受け取る

関数からの戻り値を生データで受け取る

6.6.2 戻り値を参照で受け取る

関数からの戻り値を参照で受け取る

コラム 関数内部で定義した変数を参照の戻り値として返す

6.6.3 戻り値をポインターで受け取る

関数からの戻り値をポインターで受け取る

コラム main()関数の戻り値

コラム main()関数へ引数を渡す

コラム 引数を持たない関数の記述

6.7 関数の多重定義(オーバーロード)

6.7.1 オーバーロードの概要

関数をオーバーロードするメリット

6.7.2 関数をオーバーロードする

関数をオーバーロードする

オーバーロード可能な関数

オーバーロードできない関数

関数をオーバーロードするプログラムの作成

関数の多重定義とオーバーロード

コラム パラメーターがポインター渡しの場合のオーバーロード

コラム デフォルト引数を使うときの注意点

6.8 関数テンプレート

6.8.1 関数テンプレートの概要

関数テンプレートの仕組み

コラム 関数テンプレートを使うメリット

6.8.2 関数テンプレートの利用

関数テンプレートを使う

関数テンプレートを利用したプログラムの作成

関数テンプレートのパラメーターを設定する

型を指定して関数テンプレートを呼び出す

型識別子と基本データ型を混在させる

戻り値の型を指定する

6.9 名前空間

6.9.1 名前空間の定義

名前空間を定義する

6.9.2 名前空間と関数プロトタイプ

名前空間の定義を関数プロトタイプと併用する

コラム 関数テンプレートのオーバーロード

6.9.3 usingによる名前空間名の指定

名前空間の指定を省略できるようにする

コラム 関数プロトタイプの省略

名前空間のすべての要素をusing指定する

コラム 特定の範囲内でusingの指定を有効にする

コラム 関数テンプレートの識別子に値を渡す

コラム 関数テンプレートは1つ作っておけば使い回しができる

コラム 関数ポインターの使用

コラム 関数テンプレートを多重定義する

Chapter 7 ポインターの機能と使い方

7.1 ポインターの概要

7.1.1 変数や関数のアドレス

変数や関数のアドレスを調べる

7.1.2 ポインターの宣言と初期化

ポインターの宣言とアドレスの代入

ポインターを初期化する

コラム ポインターの宣言方法

コラム ポインターにアドレスを設定する

7.1.3 ポインターによるメモリの操作

ポインターを使って変数の値を参照する

直接参照と間接参照

コラム 値渡しと参照渡し

コラム 複数のポインターの宣言方法

コラム ポインターの宣言時のミス

ポインターで変数の値を操作する

ポインターのアドレスを変更する

コラム 参照とポインターの違い

コラム ポインターを使って別の変数の値を設定する

コラム 文字列リテラルをポインターに設定する

7.1.4 ヌルポインター

ヌルポインターを設定する

7.1.5 ポインターによるメモリの動的確保

メモリーを動的に確保する

確保した領域を解放する

配列を確保する

コラム 関数を指すポインターは可能?

7.2 ポインターと配列

7.2.1 配列のアドレス

ポインターと配列の関係

配列のアドレスを表示する

7.2.2 アドレスの取得

配列のアドレスを取得する

配列名で配列の要素のアドレスを取得する

ポインターで配列のアドレスを取得する

7.2.3 値の取得

配列名で値を取得する

ポインターで値を取得する

コラム アドレスを取得する際の各表記法の関係

7.2.4 値の代入

ポインターで配列の値を代入する

ポインターの参照先を定数にする

コラム 値を取得する際の各表記法の関係

コラム ポインターそのものを定数にする

7.3 関数ポインターとvoidポインター

コラム ポインターの型

7.3.1 関数ポインター

関数ポインターを宣言する

関数ポインターを利用したプログラムを作成する

コラム 関数へのポインター宣言

7.3.2 voidを参照するポインター

voidを参照するポインターを使う

コラム 関数ポインター宣言時に必要な要素

コラム typedef指定子

voidポインターの機能

コラム テンプレート引数の型によって異なる処理を行う

コラム static_cast演算子

コラム ポインターのポインター

コラム 引数を関数ポインターにする

コラム 引数を関数ポインターにする際にポインターの初期化を行わない

コラム テンプレート型の引数を持つ関数の場合

コラム 処理回数によって特定の関数を呼び出す

コラム Printf()関数と出力変換指定子

コラム オーバーロードした関数を関数ポインターを使って呼び出すには

Chapter 8 構造体、列挙体、共用体

8.1 構造体の使い方

8.1.1 構造体の使い方

構造体を使うメリット

コラム 共用体の制限事項

8.1.2 構造体の宣言

構造体型の変数に値を代入する

構造体のメンバー

構造体とオブジェクト、インスタンスの関係

コラム 構造体名と変数名

8.1.3 構造体を使ったプログラムの作成

構造体を使ったプログラムを作成する

構造体とクラスの違いを確認する

8.1.4 構造体をコピーするプログラムの作成

プログラムの作成

構造体の初期化

構造体の配列の初期化

8.1.5 構造体の配列

構造体配列を使うプログラムの作成

8.1.6 ポインターを使った構造体へのアクセス

ポインターで構造体にアクセスする

8.2 列挙体

8.2.1 列挙体の使い方

列挙体を宣言する

8.2.2 列挙体の変数の使い方

列挙体型の変数を宣言する

列挙体型の変数に値を代入する

列挙体を使ったプログラムの作成

8.2.3 列挙定数の操作

列挙定数が独自に持つint値

コラム 列挙体のサイズ

列挙定数の値を設定する

コラム 列挙定数を識別する値

8.3 共用体

コラム 共用体とクラス

8.3.1 共用体を使う

共用体を使う理由

共用体の使い方

共用体を使ったプログラムの作成

コラム 共用体メンバーの検証

Chapter 9 クラスの作成と活用

9.1 クラスの作成と作成したクラスの利用

9.1.1 クラスに含まれるデータメンバーとメンバー関数

クラスの構造

クラス内部で関数を定義する

クラスの宣言

クラスで定義したメンバー

9.1.2 クラスの利用

クラスを利用するためのインスタンス化

クラスのメンバーを呼び出す

ポインターによるメンバーの呼び出し

複数のクラスのインスタンス化

コラム インスタンス化

9.1.3 クラスと構造体の関係

クラスと構造体で同じ処理をする

コラム クラスと共用体

9.2 クラスのアクセス制限

9.2.1 アクセス制限の必要性

クラスのカプセル化

クラスをカプセル化する

インターフェイスの実装

入力された値を画面に表示する関数の定義

main()関数の定義

インターフェイスを実装したプログラム

カプセル化されたクラスを持つプログラムの実行

コラム 静的メンバー関数における制限事項

9.2.2 メンバー関数の内部定義とインライン化

メンバー関数の内部定義

メンバー関数のインライン化

外部定義したメンバー関数のインライン化

9.3 コンストラクターと静的メンバー

9.3.1 コンストラクターの作成

コンストラクターの働き

コンストラクターの作成

2つ以上のパラメーターを持つコンストラクターの呼び出し

引数を省略してコンストラクターを呼び出す

コンストラクターの多重定義

配列によるコンストラクター呼び出し

コラム デフォルトコンストラクター

9.3.2 静的メンバー

静的データメンバー

静的メンバー関数

静的メンバーを利用したプログラムの作成

コラム インスタンス化の必要がない静的データメンバーと静的メンバー関数

9.4 クラスの継承

9.4.1 基本クラスを継承して派生クラスを作成する手順

基本クラスの作成

コラム 継承を利用する場合のアクセス指定

継承の仕組みを理解する

派生クラスの作成

コラム クラスの継承

基本クラスのデータメンバーにアクセスできるようにする

基本クラスのコンストラクターを呼び出す

main()関数を変更する

protectedを使う

基本クラスを書き換える

派生クラスのメンバー関数を書き換える

クラスを継承するときのアクセス指定

9.5 仮想関数とオーバーライド

9.5.1 オーバーライドを使う

メンバー関数のオーバーライド

オーバーライドの仕組み

継承したメンバー関数とオーバーライドしたメンバー関数の呼び出し

派生クラスにおける基本クラスの仮想関数の呼び出し

9.5.2 ポインターによる関数呼び出し

プログラムを書き換える

9.5.3 仮想関数の作成

仮想関数を作成する

9.5.4 純粋仮想関数と抽象クラス

純粋仮想関数の作成

純粋仮想関数の考え方

純粋仮想関数を使うメリット

純粋仮想関数を宣言する

純粋仮想関数を利用したプログラムの作成

コラム 構造体の配置例

コラム インライン関数を使うメリット

Chapter 10 オブジェクト指向に基づいたクラスの活用

10.1 ポリモーフィズムと実行時型識別(RTTI)

10.1.1 ポリモーフィズムと実行時型識別(RTTI)

ポリモーフィズム

実行時型識別(RTTI)

静的ポリモーフィズム

実行時型識別を利用したプログラムの作成

実行時型識別の仕組み

typeid演算子

コラム typeid演算子の戻り値

10.1.2 基本クラス型のポインターを使用したポリモーフィズム

コラム アップキャストとダウンキャスト

10.2 C++のキャスト

10.2.1 static_cast

静的な型変換を行うstatic_cast

10.2.2 reinterpret_cast

reinterpret_castを使ったプログラム

10.2.3 const_cast

const_castを使ったプログラム

10.2.4 RTTIの利用

typeidを利用したプログラムの作成

コラム reinterpret_castとstatic_const

コラム dynamic_castを使う

10.3 多重継承

コラム デフォルトのアクセス指定

10.3.1 多重継承による派生クラスの作成

多重継承を利用したプログラムの作成

基本クラスのコンストラクターを多重継承する

メンバーの明示的呼び出し

仮想基本クラス

10.4 フレンドクラスとフレンド関数

10.4.1 フレンドクラス

フレンドクラスを利用したプログラムの作成

コラム type_infoに含まれる関数

10.4.2 フレンド関数

フレンド関数を利用したプログラムの作成

10.5 デストラクターと特殊なコンストラクター

10.5.1 デストラクター

デストラクターが必要になる場合

10.5.2 継承時におけるコンストラクターとデスクトラクターの動作

基本クラスと派生クラスにコンストラクターとデストラクターを定義する

10.5.3 デフォルトコンストラクター

デフォルトコンストラクターの定義

10.5.4 継承関係にあるコンストラクターのオーバーロード

オーバーロードされた複数のコンストラクターが基本クラスに存在する場合

基本クラスのコンストラクターを呼び分けるプログラムの作成

10.5.5 コピーコンストラクター

コピーコンストラクター

コピーコンストラクターを使う

コラム 初期化と代入の違い

10.6 メンバーポインター

10.6.1 メンバー変数ポインター

メンバー変数ポインターの定義

変数ポインターを利用したプログラムの作成

10.6.2 メンバー関数ポインター

メンバー関数ポインターの定義

メンバー関数ポインターを利用したプログラムの作成

コラム メンバー変数ポインターに格納されている値

10.7 演算子のオーバーロード

10.7.1 メンバー関数を利用した演算子のオーバーロード(多重定義)

演算子をオーバーロードする仕組みと用法

演算子をオーバーロードするプログラム

オーバーロード可能な演算子

10.7.2 独立した演算子関数の定義

10.7.3 演算子関数のフレンド化

10.7.4 参照型のパラメーターと戻り値を持つ演算子関数

パラメーターも戻り値も参照にする

コラム thisポインター

10.7.5 単項演算子のオーバーロード

演算子関数で単項演算子を使う

10.8 関数テンプレートとクラステンプレート

10.8.1 関数テンプレートの仕組み

関数テンプレートの機能を知る

関数テンプレートを定義する

関数テンプレートを作成する

10.8.2 クラステンプレートの仕組み

クラステンプレートの機能を知る

クラステンプレートを作成する

コラム コピーコンストラクターを使うメリット

Chapter 11 STLの利用

11.1 STLを利用する

11.1.1 STLの仕組み

STLの基本要素

STLを利用したプログラムの作成

STL用ヘッダー

テンプレートクラスの宣言

イテレーターの宣言

vectorのメンバー関数

コラム iteraor以外の反復子

STLのアルゴリズムを使う

アルゴリズムを利用したプログラムを作成する

コラム イテレーター

コラム newとdeleteをオーバーロードする

Chapter 12 入出力ストリームとファイルストリーム

12.1 入出力ストリーム

12.1.1 演算子による入出力

演算子を使った入出力

入力演算子(>>)でデータを出力する

入力データを判別する

get関数とput関数による入出力

マニピュレーター

小数値の有効桁数(精度)

12.1.2 ファイルストリーム

ファイルストリームの仕組み

ファイルのオープンとクローズ

ファイルへの出力

Chapter 13 C++/CX

13.1 Windows RuntimeとC++/CX

13.1.1 Windows Runtime

Windowsストアアプリの開発

コラム COM(Component Object Model)

13.1.2 C++/CX(Visual C++ Component eXtensions)

13.2 C++/CXコンソールアプリケーションの開発

13.2.1 C++/CXコンソールアプリケーション用プロジェクトの作成

プロジェクトの設定

ソースファイルの追加

13.2.2 C++/CXプログラムの作成

コラム main()関数の引数

Windows Runtimeを初期化する

13.2.3 画面に文字列を表示する

C++/CXコンソールアプリケーションで文字列を表示する

コラム コンソールが閉じないようにする

13.3 C++/CXの既定の型とクラス

13.3.1 C++/CXにおける既定のデータ型

数値型

数値型の相互運用

文字型

13.3.2 C++/CXのクラス

参照クラスの宣言とインスタンスの生成

自動参照カウントによるインスタンスの解放処理

クラスの定義とインスタンス化を行う

トラッキング参照(tracking reference)

13.3.3 ハンドルによるインスタンスの参照

オブジェクトのハンドル

ref newによるインスタンス化とハンドルによるメンバーアクセス

ハンドルを取得する

ハンドルを返すメソッド

13.4 ref構造体と値クラス

13.4.1 ref構造体

ref構造体を定義する

13.4.2 値クラス

値クラスを定義する

値クラスを利用するプログラムの作成

13.4.3 値クラスにおけるメソッドの定義

13.5 配列と列挙型

13.5.1 C++/CXの配列型

配列を作成する

配列の初期化

13.5.2 配列のサイズ

13.5.3 配列要素の順次処理

13.5.4 列挙型

C++/CXの列挙型を定義する

13.6 Stringクラス

13.6.1 Stringクラスにおける文字列の表現

String^型の変数に文字列を代入する

13.6.2 文字数を調べる

文字列の先頭から順次、処理を実行する

13.6.3 Begin()とEnd()で順次処理を実行する

13.6.4 文字列の連結

13.6.5 文字列の比較

コラム 反復子を利用した順次処理

13.7 プロパティ

13.7.1 プロパティを利用したフィールド値の読み書き

プロパティへのアクセス

プロパティを定義して利用する

プロパティの宣言と実装を同時に行う

13.7.2 プロパティへのアクセス制御

読み取り専用プロパティ

書き込み専用プロパティ

get()とset()に異なるアクセス範囲を設定する

13.7.3 自動実装プロパティ

13.7.4 インデックスプロパティ

インデックスプロパティを利用する

読み取り専用のインデックスプロパティ

複数のインデックスが付くプロパティ

配列的な記憶域を持つプロパティ

13.8 参照クラスの継承

13.8.1 単一継承の制約

13.8.2 参照クラスの継承

13.9 抽象クラスとインターフェイス

13.9.1 抽象クラスと抽象メソッド

抽象メソッド

抽象クラスの利用

13.9.2 明示的なオーバーライド

名前の異なるメソッドをオーバーライドする

13.9.3 オーバーライドの禁止

シールクラス

メソッドをオーバーライド禁止にする

オーバーライドしたメソッドをシールする

13.9.4 インターフェイス

単一継承の機能を補うインターフェイス

インターフェイスの作成

インターフェイスの実装

インターフェイス型オブジェクトへの変換

インターフェイスを離床するプログラムの作成

複数のインターフェイスを実装する

実装と継承を同時に使う

インターフェイスの拡張

インターフェイスの明示的な実装

13.10 ジェネリックと型変換

13.10.1 ジェネリックを使用した型の関連付け

C++/CXにおけるジェネリックの仕組み

ジェネリックを使用したインターフェイスの実装

13.10.2 暗黙的な型変換

基本クラス型の変数を型変換できる範囲

暗黙的な型変換を使ってハンドルを代入する

13.10.3 ダウンキャスト

dynamic_castによるダウンキャスト

safe_castでキャスト時のエラーを検出する

static_castによるキャスト

13.11 イベントとデリゲート

13.11.1 デリゲート

デリゲートを経由したメソッド呼び出し

Invoke()によるデリゲートの呼び出し

デリゲートによる静的メソッド呼び出し

13.11.2 イベント

イベントの宣言

イベントを利用したプログラム

13.11.3 カスタムイベントの定義

カスタムイベントを定義する

Chapter 14 Windowsストアアプリの開発

14.1 Windowsストアアプリの概要

14.1.1 Visual Studio Express 2013 for Windowsのダウンロードとセットアップ

VS Express 2013 for Windowsのシステム要件

VS Express 2013 for Windowsのダウンロードとセットアップ

コラム Windowsストアアプリのアンインストール

14.1.2 Windowsストアアプリの開発環境

Windowsストアアプリ用に作成する実行関連ファイル

Windowsストアアプリの開発に利用できる開発言語

14.1.3 XAMLの基礎

XAMLによるコントロールの配置

XAML要素のコンテンツ

XAMLドキュメントの構造

XAML要素とイベントハンドラーとの連携

14.2 ストアアプリ用プロジェクトの作成およびストアアプリの実行

14.2.1 Windowsストアアプリケーション用プロジェクトの作成

14.2.2 メッセージを表示するプログラムの作成・

ButtonとTextBlockを配置する

プロパティを設定する

メッセージを表示するイベントハンドラーを作成する

プログラムを実行する

コラム 配色テーマの切り替え

コラム シミュレーターを利用したプログラムの実行

コラム 画面の分割を解除する

コラム XAMLのコードを記述してコントロールを配置する

コラム ShowAsync()メソッドによる非同期処理

14.2.3 メッセージを表示するプログラムの作成・

Buttonを配置してイベントハンドラーを作成する

14.3 画面のレイアウトと各種のコントロールの利用

14.3.1 コントロールを横に並べる

Buttonを横に並べる

コラム Gridの表示位置の指定

14.3.2 コントロールを格子状に並べる

Buttonを格子状に並べる

コラム ビューの切り替え

14.3.3 CheckBoxの利用

CheckBoxを使う

コラム [プロパティパネル]で表示位置とサイズを設定する

14.4 画像ファイルの表示

コラム Imageコントロールで表示可能なファイル形式

14.4.1 Imageコントロールを利用した画像表示

イメージファイルの用意

イメージファイルの表示方法

プロジェクト内のイメージをC++/CXのコードで表示する

イベントに対応してイメージファイルを表示するプログラムの作成

コラム Microsoft社のサイトからフリーの素材を入手する

14.5 マークアップ拡張によるデータバインディング

14.5.1 マークアップ拡張によるデータバインディング

Sliderコントロールの値をTextBoxに表示する

コラム 背景イメージの設定

コラム スプラッシュスクリーンやタイルの設定

14.6 ファイルの読み書き

14.6.1 テキストファイルの読み書き

テキストファイルの用意

画面の作成

ソースコードの入力

14.6.2 ファイルの書き込み

画面の作成

ソースコードの入力

コラム 非同期処理

コラム 非同期処理中にボタンの状態を切り替える

コラム ラムダ式

コラム ラムダ式における変数のキャプチャ

Appendix 資料

Appendix1 用語集(VisualC++関連)

Appendix2 用語集(プログラミング全般)

PR

秀和システム