型変換

『Accelerated C++』より

型変換は、引数を1つだけとるコンストラクタ、またはoperator type-name()という形の型変換演算子によって定義される。

コンストラクタをexplicit宣言した場合、そのコンストラクタを非明示的な型変換に使用することはできない。

コンストラクタをexplicitにすることは、コンパイラに対して「このコンストラクタは引数を明示的に受け取る場合のみ働く」と宣言することである。

型変換演算子(conversion operator)は、メンバ関数でなければならない。