Неявный и явный конструктор С++
Знаете ли вы, что существуют как явные, так и неявные конструкторы?
Давайте рассмотрим разницу между ними, когда их можно использовать в своём коде, чтобы код был более читаемым.
Явный конструктор
В некоторых компиляторах C++ вы можете увидеть предупреждения о необходимости указании явного конструктора.
Давайте рассмотрим пример явного конструктора:
Вы должны инициализировать объект данного класса, конструктором этого класса с установленным значением параметра.
Неявный конструктор
Эти конструкторы позволяют инициализировать значение класса без указания имени класса.
Давайте посмотрим на пример:
Компилятор C++ смог неявно вызвать конструктор, и разрешил присвоить объекту целочисленное значение.
Исходя из выше сказанного данный код имеет право на жизнь.
std::string my_string = "Wow, this is cool!";
Объяснить это можно тем, что существует неявный конструктор с std::string, который принимает в параметрах const char *, таким образом, позволяет этой инициализации быть действительной.
Заключение
Понимание неявных и явных конструкторов позволит Вам полностью контролировать читабельность и использование своего кода. Это особенно важно учитывать, если Вы просматриваете чужой код или читаете код из библиотеки.
Понимание неявных и явных конструкторов позволит Вам полностью контролировать читабельностьЧитабельность. В плюсах. В языке, где такая банальная вещь, как строковой тип, объявляется монструозным std::string, а чтобы этого избежать, нужно костылить с пространствами имен или тайпдефами.
using std::string;
Так чего там костылить, одной строчкой подключается