コンストラクタでのみ記述することの出来る指定子。
暗黙の型変換を禁止する。
explicitを用いない場合
class ExpSample
{
...
public:
ExpSample()
ExpSample(int num)
};
explicitを用いない場合、
以下ではコンストラクタ ExpSample(int num) による初期化が行われる。
ExpSample exp = 100;
explicitを記述した場合
class ExpSample
{
...
public:
ExpSample()
explicit ExpSample(int num)
};
explicitをコンストラクタに記述した場合、暗黙の型変換が禁止される為、
ExpSample exp = 100
と記述すると以下の様なコードと解釈され、型の違いによるコンパイルエラーとなる。
(ExpSample型) = (int型)