BohYoh.comトップページへ
C & C++ FAQ
目次

C++ 変換コンストラクタとは何ですか。

 変換コンストラクタとは、一つの仮引数で呼び出すことができる、explicitなしで宣言されたコンストラクタのことです。クラスXの変換コストラクタは、第1仮引数の型をクラスX型に変換する働きをもちます。
 例を示します。

class Test { public: Test(int n); // 変換コンストラクタ Test(const char *s, int n = 0); // 変換コンストラクタとしても働く };

 以下の例からも分かるように、変換コンストラクタは、あたかも、実引数の値をTest型オブジェクトに変換するかのように働きます。

int main(void) { Test x(5); // int型の5をもとにTest型オブジェクトxを作る(int→Testの型変換)。 Test y("ABC"); // 文字列"ABC"をもとにTest型オブジェクトyを作る(char*→Testの型変換)。 Text z("XYZ", 99); // 変換コストラクタではない(二つの値からオブジェクトzを作っているため) }



■ 根拠 ■
標準C++ §12.3.1 Conversion by constructor
標準C++ 2nd §1.3.11 Conversion by constructor

戻る

BohYoh.comロゴ