Неявный и явный конструктор С++

Знаете ли вы, что существуют как явные, так и неявные конструкторы? Давайте рассмотрим разницу между ними, когда их можно использовать в своём коде, чтобы код был более читаемым.

Знаете ли вы, что существуют как явные, так и неявные конструкторы?

Давайте рассмотрим разницу между ними, когда их можно использовать в своём коде, чтобы код был более читаемым.

Явный конструктор

В некоторых компиляторах C++ вы можете увидеть предупреждения о необходимости указании явного конструктора.

Давайте рассмотрим пример явного конструктора:

Знаете ли вы, что существуют как явные, так и неявные конструкторы? Давайте рассмотрим разницу между ними, когда их можно использовать в своём коде, чтобы код был более читаемым.-2

Вы должны инициализировать объект данного класса, конструктором этого класса с установленным значением параметра.

Неявный конструктор

Эти конструкторы позволяют инициализировать значение класса без указания имени класса.

Давайте посмотрим на пример:

Знаете ли вы, что существуют как явные, так и неявные конструкторы? Давайте рассмотрим разницу между ними, когда их можно использовать в своём коде, чтобы код был более читаемым.-3

Компилятор C++ смог неявно вызвать конструктор, и разрешил присвоить объекту целочисленное значение.

Исходя из выше сказанного данный код имеет право на жизнь.

std::string my_string = "Wow, this is cool!";

Объяснить это можно тем, что существует неявный конструктор с std::string, который принимает в параметрах const char *, таким образом, позволяет этой инициализации быть действительной.

Заключение

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