![]() |
![]() |
| 通常PC用 / 人気 更新 今日 カテ |
| 電子計算機 > 仕様・構造 > ソフトウェア > プログラミング言語 > 言語仕様 > 予約語・関数など > C++ |
| explicit |
| 辞書:電算用語の基礎知識 プログラミング仕様編 (PTPROGS) |
| 読み:イクスプリシット |
| 外語:explicit |
| 品詞:名詞 |
|
|
| 概要 |
explicit変換演算子は、意図しない変換の呼び出しを回避するために使われる。
| C++ |
| コンストラクター |
C++では、引数の型が異なる場合に、対応するコンストラクターがあれば暗黙のうちに型変換のために呼び出されることがある。一方、explicitで修飾されたコンストラクターは、明示的にコードに書かない限り呼び出されない。
例えば、
class clsTest {
public:
explicit clsTest(int arg);
};
とした時、
int main()
{
clsTest test(123);
test = 456; // ←エラー
test = clsTest(456); // ←OK
return EXIT_SUCCESS;
}
のようになる。
暗黙の型変換は行なわれず、明示的にコンストラクターを呼び出す必要がある。
| 変換関数 |
C++11では、変換関数にも使うことができる。
例えば、
class B {};
class D {
public:
explicit operator B() const;
};
とした時、
int main()
{
D d;
B ba = d; // ←エラー
B bb = (B)d; // ←OK
return EXIT_SUCCESS;
}
のようになる。
暗黙の変換は行なわれず、明示的にキャストを用いる必要がある。
| リンク |
| 通信用語の基礎知識検索システム WDIC Explorer Ver 7.04a (27-May-2022) Search System : Copyright © Mirai corporation Dictionary : Copyright © WDIC Creators club |