コンストラクタのexplicitについて

コンストラクタにexplicitを付与すると暗黙の型変換を禁止する。
引数が一個の時にしか使えない?

具体的には、int値を一個受け取るコンストラクタを持つ、クラスtestに対して、コンストラクタにexplicitを付与すると、

test x = 5; // エラー
text x(4); // OK

explicitを書かないと

test x = 5;  // OK
test x(4); // OK

となる。

こうした方がいい理由についてはもっと学習した方がよさそう。

https://ja.stackoverflow.com/questions/48085/c-explicit%E3%81%AE%E4%BD%BF%E3%81%84%E9%81%93%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E7%9F%A5%E3%82%8A%E3%81%9F%E3%81%84

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です