C++ ユーザーズガイド

用語集

ANSI C

ANSI (米国規格協会) による C プログラミング言語の定義。ISO (国際標準化機構) 定義と同じです。

ANSI/ISO C++

米国規格協会と国際標準化機構が共同で作成した C++ プログラミング言語の標準。

cfront

C++ を C ソースコードに変換する C++ から C へのコンパイルプログラム。変換後の C ソースコードは、標準の C コンパイラでコンパイルできます。

ISO

国際標準化機構。

K&R C

Brian Kernighan と Dennis Ritchie によって開発された、ANSI C 以前の事実上の C プログラミング言語標準。

VTABLE

仮想関数を持つクラスごとにコンパイラが作成するテーブル。

インクリメンタルリンカー

変更された .o ファイルだけを古い実行可能ファイルにリンクして新しい実行可能ファイルを作成するリンカー。

インスタンス化

C++ コンパイラが、テンプレートから使用可能な関数やオブジェクト (インスタンス) を生成する処理。

インライン関数

関数呼び出しを実際の関数コードに置き換える関数。

右辺値

代入演算子の右辺にある変数。右辺値は読み取れますが、変更はできません。

演算子の多重定義

同じ演算子表記を異なる種類の計算に使用できること。関数の多重定義の特殊な形式の 1 つです。

オプションファイル

ソースの場所などの情報と、テンプレートのコンパイルに必要なオプションを含むユーザーが用意するファイル。

シンボルをどのように使用するかを記述したもの。基本型は整数と浮動小数点数であり、他のすべての型は、これらの基本型を配列や構造体にしたり、ポインタ属性や定数属性などの修飾子を加えることによって作成されます。

関数の多重定義

扱う引数の型と個数が異なる複数の関数に、同じ名前を与えること。関数の多相性ともいいます。

関数のテンプレート

ある関数を作成し、それを「ひな型」として関連する関数を作成するための仕組み。

関数プロトタイプ

関数とプログラムの残りの部分とのインタフェースを記述する宣言。

キーワード

プログラミング言語で固有の意味を持ち、特殊な文脈だけで使用可能な単語。

基底クラス

「継承」を参照。

クラス

名前が付いた一連のデータ要素 (型が異なっていてもよい) と、そのデータを処理する一連の演算からなるユーザーの定義するデータ型。

クラステンプレート

一連のクラスや関連するデータ型を記述したテンプレート。

継承

プログラマが既存のクラス (基底クラス) から新しいクラス (派生クラス) を派生させることを可能にするオブジェクト指向プログラミングの機能。継承の種類には、公開、限定公開、非公開があります。

コンストラクタ

クラスオブジェクトを作成するときにコンパイラによって自動的に呼び出される特別なクラスメンバー関数。これによって、オブジェクトのインスタンス変数が初期化されます。コンストラクタの名前は、それが属するクラスの名前と同じでなければなりません。

コンパイラオプション

コンパイラの動作を変更するためにコンパイラに与える命令。たとえば、-g オプションを指定すると、デバッガ用のデータが生成されます。フラグやスイッチとも呼ばれます。

最適化

コンパイラが生成するオブジェクトコードの効率を良くする処理のこと。

サブルーチン

関数のこと。Fortran では、値を返さない関数を指します。

左辺値

変数のデータ値が格納されているメモリーの場所を表す式。あるいは、代入演算子の左辺にある変数のインスタンス。

実行時の型識別 (RTTI)

プログラムが実行時にオブジェクトの型を識別できるようにする標準的な方法を提供する仕組み。

シンボル

何らかのプログラムエントリを示す名前やラベル。

シンボルテーブル

プログラムのコンパイルで検出されたすべての識別子と、それらのプログラム中の位置と属性からなるリスト。コンパイラは、このテーブルを使って識別子の使い方を判断します。

スタック

後入れ先出し法によってデータをスタックの一番上に追加するか、一番上から削除しなければならないデータ記憶方式。

スタブ

オブジェクトコードに生成されるシンボルテーブルのエントリ。デバッグ情報を含む a.out ファイルと ELF ファイルには同じ形式のスタブが使用されます。

静的束縛

関数呼び出しと関数本体をコンパイル時に結び付けること。事前束縛とも呼びます。

束縛

関数呼び出しと特定の関数定義を結び付けること。一般的には、名前と特定の対象を結び付けることを指します。

多重継承

複数の基底クラスから 1 つの派生クラスを直接継承すること。

多重定義

複数の関数や演算子に同じ名前を指定すること。

多相性

ポインタや参照が、自分自身の宣言された型とは異なる動的な型を持つオブジェクトを参照できること。

抽象クラス

少なくとも 1 つの純粋仮想関数を持ち、別のクラスの基底クラスとしてのみ使用されるクラス。抽象クラスが保持できるオブジェクトは、その抽象クラスから派生したクラスで生成されたものだけです。自分自身で生成したオブジェクトを保持することはできません。

データ型

文字、整数、浮動小数点数などを表現するための仕組み。変数に割り当てられる記憶域とその変数に対してどのような演算が実行可能かは、この型によって決まります。

データメンバー

クラスの要素であるデータ。関数や型定義と区別してこのように呼ばれます。

デストラクタ

クラスオブジェクトを破棄したり、演算子 delete をクラスポインタに適用したときにコンパイラによって自動的に呼び出される特別なクラスメンバー関数。デストラクタの名前は、それが属するクラスの名前と同じで、かつ、名前の前にチルド (‾) が必要です。「コンストラクタ」を参照。

テンプレートデータ ベース

プログラムが必要とするテンプレートの処理とインスタンス化に必要なすべての構成ファイルを含むディレクトリ。

テンプレートの特殊化

デフォルトのインスタンス化では型を適切に処理できないときに、このデフォルトを置き換える、クラステンプレートメンバー関数の特殊インスタンス。

動的キャスト

ポインタや参照の型を、宣言されたものから、それが参照する動的な型と矛盾しない任意の型に安全に変換するための方法。

動的束縛

関数呼び出しと関数本体を実行時に結びつけること。これは、仮想関数に対してのみ行われます。事後束縛または実行時束縛とも呼ばれます。

動的な型

ポインタや参照でアクセスするオブジェクトの実際の型。この型は、宣言された型と異なることがあります。

トラップ

他の処置をとるためにプログラムの実行などの処置を遮ること。これによって、マイクロプロセッサの演算が一時的に中断され、プログラム制御が他のソースに渡されます。

名前空間

大域空間を一意の名前を持つスコープに分割して、大域的な名前のスコープを制御する仕組み。

名前の符号化

C++ では多くの関数が同じ名前を持つことがあるため、名前だけでは関数を区別できません。そこで、コンパイラは関数名とパラメータを組み合わせた一意の名前を各関数に割り当てます。このことを名前の符号化と呼びます。これによって、型の誤りのないリンケージを行うことができます。名前の符号化は「名前修飾」とも呼びます。

バイナリ互換

あるリリースのコンパイラでコンパイルしたオブジェクトファイルを別のリリースのコンパイラを使用してリンクできること。

配列

同じデータ型の値をメモリーに連続して格納するデータ構造。各値にアクセスするには、配列内のそれぞれの値の位置を指定します。

派生クラス

「継承」を参照。

符号化する

「名前の符号化」を参照。

プラグマ

コンパイラに特定の処置を指示するコンパイラのプリプロセッサ命令、または特別な注釈。

べき等

ヘッダーファイルの属性。ヘッダーファイルを 1 つの翻訳単位に何回インクルードしても、一度インクルードした場合と同じ効果を持つこと。

マルチスレッド

シングルまたはマルチプロセッサシステムで並列アプリケーションを開発・実行するためのソフトウェア技術。

メソッド

一部のオブジェクト指向言語でメンバー関数の代わりに使用される用語。

メンバー関数

クラスの要素である関数。データや型定義と区別してこのように呼ばれます。

リンカー

オブジェクトコードとライブラリを結びつけて、完全な実行可能プログラムを作成するツール。

例外

プログラムの通常の流れの中で起こる、プログラムの継続を妨げるエラー。たとえば、メモリーの不足やゼロ除算などを指します。

例外処理

エラーの捕捉と防止を行うためのエラー回復処理。具体的には、プログラムの実行中にエラーが検出されると、あらかじめ登録されている例外ハンドラにプログラムの制御が戻り、エラーを含むコードは実行されなくなることを指します。

例外ハンドラ

エラーを処理するために作成されたコード。ハンドラは、対象とする例外が起こると自動的に呼び出されます。