ブックマーク / oshiete.goo.ne.jp (1)

  • explicitの定義は?

    C++においてexplicitについて調べると explicit <エクスプリシット> 「明示的」 引数をひとつだけ受け取るコンストラクタに付けることのできる C++ 言語のキーワード。 クラスを関数の引数として使う場合、その関数には、クラスのコンストラクタの引数になっているものも渡すことができてしまう。これは暗黙的にコンストラクタが呼び出されるからである。このとき、「コンストラクタの引数」がまるで「関数の引数」であるかのように振る舞ってしまい、来ならコンパイルエラーとなって欲しい場面でも、見えない部分でコンストラクタが呼ばれることでコンパイルが通ってしまう。その結果、想定していない動作をする可能性がある。 そこで、コンストラクタには「暗示的に呼び出せない」ようにするためのキーワードがある。それが explicit である。このキーワードを付けたコンストラクタは、必ず明示的に呼び出される

    explicitの定義は?
  • 1