最近c++の勉強を始めました。0;}単純なプログラムなのですが、main二行目のコードでは20、四行目のコードでは10と表示されます。2年前7行目にあるような,引数が1つだけのコンストラクタは,explicitとして宣言されていない限り,暗黙の変換に使われます。オフトピックなお,この「引数が1つだけのコンストラクタ」には,省略可能な引数を持っており,1個だけの引数を与えることができるようなコンストラクタを含みます。右辺がint型であるため型が一致せず,本来は代入できないのですが,右辺をSampleクラスのコンストラクタを使った変換を行うことによって,両辺ともSample型にすることができます。Sample(10);とすることで,両辺の型が一致するため,代入が出来ます。これを,コンパイラが自動的に行っています。(int)があれば代入できますが,今回の話には関係しません。このユーザー定義の関数を使った暗黙の変換は1回までとなっています。10;は2度の変換が必要になるため失敗します。ミクプラは自由にリンクできます。