VisualC++ 2010 パーフェクトマスター

概 要

VisualC++ 2010の全操作・全機能を完全解説したパーフェクトガイドです。無料のプログラミングツールMicrosoft VisualC++ Expressで、「標準C++」と.Net Frameworkに対応したアプリケーション開発用言語「C++/CLI」を使ったプログラミングをすることができます。本書では、標準C++を基礎からしっかり解説し、C++/CLIを使ったWindowsアプリケーションを作成するテクニックまで、フルカラーの紙面で詳しく紹介しています。たくさんのサンプルコードを具体例に使い、プログラムが実行される手順を詳しく解説しているので、プログラミングがはじめての方でも安心です。本書で紹介したサンプルプログラムのダウンロードサービス付き。

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

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

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

サポート

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

サポート情報へのリンク

目次

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

1.1 ●VisualC++の特徴

1.1.1 標準C++

標準C++の特徴を知る

コラム 型システム

C++の歴史を見る

コラム 静的な型システム

1.1.2 Microsoft社のVisualC++

VisualC++が持つ二つの顔

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

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

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

コラム Visual C++2010の新機能

1.1.3 C++/CLI

C++/CLIプログラミングとは

コラム 共通型システム

コラム 共通型システムを実現するCTSとCLS

1.2 ●VisualC++ 2010 Expressのダウンロードとインストール

1.2.1 VisualC++ Expressのダウンロードとインストール

VisualC++ Expressをダウンロードする

コラム VisualStudio2010 Proffesional Edition 評価版

コラム 製品の登録

VisualC++の構造を見る

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

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

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

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

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

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

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

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

プログラムを実行する

コラム 出力ウィンドウ

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

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

プロジェクトを保存する

プロジェクトを終了する

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

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

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

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

コラム プリプロセッサ

コラム ヘッダファイル

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

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

コラム ステートメント

文字列を表示する

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

コラム iostream

1.4.2 C++コードの書き方

コードを記述する

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

コメントを記述する

1.4.3 エスケープシーケンス

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

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

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

1.4.4 数値リテラル

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

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

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

1.4.5 四則演算

四則演算を行う

1.5 ●ヘルプの活用

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

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

1.5.2 キーワードを利用したヘルプの検索

キーワードを使ってヘルプを検索する

コラム VisualC++の入力支援機能

コラム 調べたい項目のヘルプを展開する

コラム ライブラリに登録されているクラスや構造体などを調べる

●Chapter 2 C++の基本

2.1 ●変数

2.1.1 変数の役割と使い方

変数の役割

変数を宣言する

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

変数に値を代入する

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

2.1.2 変数の初期化

変数を初期化する

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

変数の値を変更する

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

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

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

2.2 ●データ型

2.2.1 データ型の種類

データ型の種類

コラム 符号を使う

コラム signedの省略

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 シフト演算子

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

コラム オペランドとオペレータ

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

コラム 負の数の表現

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

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

3.1.5 関係演算子

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

3.1.6 等価演算子

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

3.1.7 論理演算子

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

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

3.1.8 ビット演算子

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

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

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

カンマ演算子を使う

3.1.10 sizeof演算子

sizeof演算子を使う

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

3.1.11 ポインタ演算子

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

3.1.12 メンバポインタ演算子

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

コラム sizeof演算子の使い方

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

3.1.13 条件演算子

条件演算子の使い方

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

●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ステートメントの使い方

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

4.2.4 forステートメント

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

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

4.2.5 breakステートメント

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

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

4.2.6 continueステートメント

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

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

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

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

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

●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 多次元配列を使った文字列の操作

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

コラム 1バイト文字と2バイト文字を共存させる仕組み

●Chapter 6 関数

6.1 ●関数の作成と呼び出し

6.1.1 関数の定義

関数を定義する

戻り値を指定する

6.1.2 関数の呼び出し

関数を呼び出す

3つ以上の引数を取る関数

引数も戻り値もない関数

引数のキャスト

コラム 仮引数名の省略

6.2 ●関数プロトタイプ

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

関数プロトタイプの構造

関数プロトタイプの宣言

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

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

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

6.2.2 デフォルト引数

デフォルト引数を使う

6.3 ●インライン関数

6.3.1 インライン関数の機能

インライン関数の使い方

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

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

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

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

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

コラム 引数の省略記号

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

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

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

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

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

コラム ローカル変数とグローバル変数における初期化の違い

自動変数

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

コラム register

6.4.2 静的ローカル変数

静的ローカル変数を使う

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

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

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

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

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

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

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

コラム staticな関数

6.4.5 変数の寿命とスコープ

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

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演算子

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

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

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

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

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

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

●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 共用体を使う

共用体を使う理由

共用体の使い方

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

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

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

●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 純粋仮想関数と抽象クラス

純粋仮想関数の作成

純粋仮想関数の考え方

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

純粋仮想関数を宣言する

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

コラム クラスと共用体

コラム 構造体の配置列

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

コラム .NET Frameworkとクラスライブラリ

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

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

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

ポリモーフィズム

実行時型識別(RTTI)

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

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

実行時型識別の仕組み

コラム typeid演算子の戻り値

typeid演算子

10.2 ●C++のキャスト

10.2.1 static_cast

静的な型変換を行うstatic_cast

10.2.2 reinterpret_cast

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

reinterpret_castを使ったプログラム

コラム reinterpret_castとstatic_const

10.2.3 const_cast

const_castを使ったプログラム

10.2.4 typeidとtype_info

typeid演算子とtypeidype_infoクラス

type_infoクラス

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

コラム インライン関数は本当に速いのか

10.3 ●多重継承

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

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

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

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

メンバの明示的呼び出し

仮想基本クラス

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

10.4.1 フレンドクラス

フレンドクラスの特徴

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

コラム type_infoに含まれる関数

10.4.2 フレンド関数

フレンド関数の特徴

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

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

10.5.1 デストラクタ

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

デストラクタを定義する

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

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

10.5.4 コピーコンストラクタ

暗黙のうちに実行されるコピーコンストラクタ

コピーコンストラクタの実装

10.6 ●メンバポインタ

10.6.1 メンバ変数ポインタ

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

変数ポインタを使用したプログラム

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

10.6.2 メンバ関数ポインタ

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

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

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

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

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

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

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

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

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

コラム 演算子関数の呼び出し

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

演算子関数をフレンド関数にする

コラム 演算子の第1引数が整数型を扱う場合

10.7.4 参照型の引数と戻り値を持つ演算子関数

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

参照型の戻り値を持つ演算子関数

コラム thisポインタ

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

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

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

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

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

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

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

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

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

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

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

コラム 値渡し、値戻しを行うコピーコンストラクタ

コラム dynamic_castを使う

●Chapter 11 STL

11.1 ●STLを利用する

11.1.1 STLの仕組み

STLの基本要素

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

STL用ヘッダ

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

イテレータの宣言

vectorのメンバ関数

STLのアルゴリズムを使う

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

コラム イテレータ

コラム iteraor以外の反復子

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

12.1 ●入出力ストリーム

12.1.1 演算子による入出力

演算子を使った入出力

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

入力データを判別する

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

マニピュレータ

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

12.1.2 ファイルストリーム

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

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

ファイルへの出力

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

コラム テキストの表示サイズの取得

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

コラム VisualStudioにおける共通型システム

コラム 構造体、列挙型、インターフェース、デリゲート

●Chapter 13 MFC(Microsoft Foundation Class)

13.1 ●シングルドキュメントアプリケーション

13.1.1 シングルドキュメントアプリケーション(SDI)の作成

空の作業画面を表示する

プログラムファイルの作成

コラム プロジェクトの保存先を指定するには

SDI用のプロジェクトの作成

[MFC アプリケーションウィザード]における操作

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

プログラムコードの入力

13.1.3 作成したプログラムを実行

プログラムの実行

プロジェクトの保存

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

コラム "(ダブルクォーテーション)を付ける理由

13.1.4 プログラムの間違いを修正する

13.1.5 プロジェクトの終了と読み込み

プロジェクトを終了する

プロジェクトを開く

13.1.6 実行可能ファイルの実行

13.2 ●マルチドキュメントアプリケーションの作成

13.2.1 マルチドキュメントアプリケーションを作成する

13.2.2 プロジェクトの作成

プロジェクトの作成

13.2.3 プログラムコードを入力

プログラムコードの入力

作成したプログラムの実行

13.3 ●ダイアログベースアプリケーションの作成

13.3.1 ダイアログベースアプリケーションを作成する

プロジェクトの作成

13.3.2 コントロールの配置

コントロールの配置を変更する

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

コラム [ダイアログエディタ]が自動的に表示されない場合

イベントハンドラの追加

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

コラム ある出来事をきっかけにプログラムは動く

プログラムの実行

13.4 ●MFCの活用

13.4.1 テキストのコントロール

テキストを結合する(Cstringクラス)

テキストを出力する(TextOut関数)

コラム CString中の文字のアクセス

コラム デバイスコンテキスト

コラム ハンドル

特定の位置を基準にしてテキストを出力する(SetTextAlign関数)

文字の色を指定する(SetTextColor関数)

コラム GDI

コラム CLR_INVALID

文字の背景色を指定する(SetTBKColor関数)

設定した領域に文字列を表示する(DrawText関数)

コラム 実行時型識別(RTTI)とtypeid演算子

●Chapter 14 C++/CLIプログラミングと.NETプログラミング

14.1 ●フォームとコントロールの利用

14.1.1 Windowsアプリケーションの概要

Windowsアプリケーションの開発工程を確認する

コントロールの操作方法を見る

コラム プロパティ、メソッド、イベントハンドラ

14.1.2 サンプルアプリケーションの作成(「HelloWorld」プログラム)

Windowsアプリケーション用のプロジェクトを作成する

コントロールを配置する

コラム コントロールとオブジェクト

コラム ヘルプでコントロールの内容を調べるには

コンロトールのプロパティを設定する

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

コラム ヘルプでプロパティの内容を調べるには

プログラムを実行する

14.1.3 文字列の操作

文字列を途中で改行する

コラム ビルド

14.1.4 実行可能形式ファイルの作成

ビルドを実行する

作成された実行可能ファイルを確認する

14.2 ●フォームの操作

14.2.1 フォームの名前を変更する

フォームの名前を変更する

14.2.2 フォームの外観の設定

フォームのサイズを変更する

コラム オブジェクトの名前の付け方

コラム [プロパティ]ウィンドウを使ってフォームのサイズを変更する

フォームの背景色を変更する

コラム [BackColor]プロパティの設定

14.3 ●プロパティとメソッド

14.3.1 プロパティ

プロパティの設定

[プロパティ]ウィンドウにおけるプロパティの設定

プロパティを利用するプログラムの作成

コラム プロパティを設定するコード

プログラムの実行

14.3.2 メソッド

メソッドを使う3つの方法

14.3.3 処理だけを行うメソッドの作成

処理だけを行うメソッドを作成する

プログラムの実行

コラム インスタンス化を自動化する

コラム Clear()メソッド

14.3.4 パラメータを指定するメソッドの作成

パラメータを指定するプログラムの作成

プログラムの実行

コラム 「MessageBox::Show()」メソッド

14.4 ●イベントドリブンプログラムの作成

14.4.1 フォームのロード時の処理

フォームのロード時に呼び出されるプログラム

14.4.2 ボタンの操作

ボタンクリック時の処理を行うプログラムの作成

MessageBoxクラス

Show()メソッドの引数を設定する

コラム メッセージボックスで指定できる引数

メッセージボックス内に表示するボタンの指定

メッセージボックスからの戻り値

プログラムの実行

14.5 ●C++/CLIプログラミングの基礎

14.5.1 C++/CLIコードと標準C++のコード

C++/CLI用のプロジェクトを作成する

C++/CLIコードと標準C++のコード

標準C++のデータ型とC++/CLIのデータ型

14.5.2 refキーワードを使用したクラスの作成

refキーワードを使用してクラスを宣言する

gcnewによるrefクラスのインスタンス化

サンプルプログラムの作成

コラム ref class

コラム C++/CLIのガベージコレクション

14.5.3 ハンドル型

ハンドル型の変数を使用する

ハンドル型変数を利用したプログラムの作成

ハンドル型のまとめ

コラム nullptr

コラム メモリ上のオブジェクトの解放

コラム ファイナライザ

コラム ボックス化

トラッキング参照

14.5.4 C++/CLIにおける構造体の作成

構造体を作成する

構造体とクラスを比較する

14.5.5 C++/CLIにおける配列の利用

配列を宣言する

配列を初期化する

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

14.5.6 インデクサとプロパティ

プロパティを設定するプログラムコードの記述

インデクサを作成する

14.5.7 C++/CLIにおける列挙体

列挙体の宣言

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

14.5.8 C++/CLIにおけるコンストラクタとデストラクタ

コンストラクタを使用するプログラムを作成する

引数を持つコンストラクタを使用するプログラムの作成

C++/CLIにおけるデストラクタ

14.5.9 C++/CLIにおけるインターフェース

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

14.5.10 クラスの継承と抽象クラス

基本クラスと派生クラスを使用したプログラムの作成

抽象クラスの実装

14.5.11 デリゲート

デリゲートの特徴

デリゲートを定義する

デリゲートをインスタンス化する

デリゲートを利用したプログラムの作成

staticなメソッドを呼び出す

マルチキャストデリゲート

14.5.12 ジェネリック

ジェネリックの特徴

ジェネリックの実装

コラム インターフェースで静的メンバを定義するには

コラム System::objectクラス

コラム クラスの継承を禁止するには

●Appendix 資料

Appendix1 クラスライブラリに登録されている主なクラス、構造体、列挙体、共用体(msdnより抜粋)

主なクラスライブラリ

System名前空間に属する主なクラス、構造体、列挙体、共用体

Appendix2 用語集(VisualC++関連)

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

PR

秀和システム