explicit

コンストラクタでのみ記述することの出来る指定子。
暗黙の型変換を禁止する。

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型)