別の浮動小数点型そして整数から浮動または逆への変換があります。これはプロモーションではなくコンバージョンとしてランク付けされます。プロモーションはコンバージョンよりもランクが高く、プロモーションのみが必要な場合はその場合が優先されます。したがって、次のコンストラクタを使うことができます。);どんな整数型でも、これはコンストラクタの最初のグループを選択するべきです。どんな浮動小数点型のためにも、これはコンストラクタの2番目のグループを選択するべきです。+のあいまいさを簡単に引き起こす可能性があります。一方の2つの引数を持つコンストラクタの場合は、必要に応じて解決策を取り入れることができます。'とは言っても、私はファクトリ関数も使用するでしょう。パラメータの意味を型で決定するのは非常に壊れやすいからです。u((int)1.5);しかし、それは別の状況になるでしょう。typedef]の使用を検討してください。それはあなたのクライアントコード側のもう少しの努力ですが、あなたは正当性を保証されています。source1最初のPointList(10)と2番目のPointList(10f)を呼び出します。2番目には、10.0も使えます。source1#1と#2のコンストラクタが存在する場合、挿入した値がfloatまたはintで、変換が行われない場合は、正しいコンストラクタが呼び出されます。あなたが明示的に呼び出すためにあなたが使用する数のタイプを明示的にすることを確実にするだけです。コンストラクタ#3は、実際には必要ではなく、コードのユーザを混乱させるだけなので、あまり選択肢にはなりません。VALUE)繰り返しますが、これはコードの可読性の点でコードよりも害が大きいようです。Overloadを読んでください。*コンストラクタを使用します。この例では、符号なし整数は暗黙的に変換されません。