В этом случае конструктор копирования может быть удален .
Аналогично MyClass MyObj = MyClass( 1, 2 );
.
И с
std::string str = "hello";
Такой код имеет неявный вызов конструктора, чтобы преобразовать char*
в std::string
.
std::string str = std::string( "hello" ); // same, written more verbosely
Без копирования, инициализация «простой» строки с помощью синтаксиса присваивания будет иметь дополнительную глубину копия. И этот синтаксис на 99% эквивалентен тому, что у вас есть.