2015-12-15 3 views
0

C++ предоставляет явное выражение ключевого слова для подавления неявных преобразований с помощью конструкторов преобразования , когда такие преобразования не должны быть разрешены. A конструктор, объявленный явно, не может использоваться в неявном преобразовании . Используйте явное ключевое слово в конструкторах с одним аргументом , которые не должны использоваться компилятором для выполнения неявных преобразований .Должен ли я использовать ключевое слово явное для конструкторов копирования?

Это имеет смысл, НО я должен использовать ключевое слово явное для конструкторов копирования? В каких других случаях было бы полезно использовать ключевое слово Явное и почему?

+0

Просьба привести цитату. –

ответ

4

Это законно объявить конструктор копии явным. Объявление этого или не зависит от того, что вы хотите сделать. Например, вы объявляете конструктор копирования explicit, если вы хотите запретить ему вызов неявно при вызове функции или синтаксисе копирования-инициализации.

+1

Это законно, но, как правило, глупо. Такой тип не является CopyConstructible. –

Смежные вопросы