Так же, как вы можете написать
std::vector<int> foo(10);
, чтобы создать вектор из 10 int
s
std::unique_ptr<Writable> str1(new String("abc"))
, создающий std::unique_ptr<Writable>
, который указывает на new String("abc")
.Это то же самое, что и
std::vector<int> foo = std::vector(10);
и
std::unique_ptr<Writable> str1 = std::unique_ptr<String>(new String("abc"));
, за исключением того, что в более поздних случаях используется инициализация копии , которая в некоторых случаях может отличаться .
Чтобы сэкономить на наборе текста, вы можете использовать
auto str1 = std::make_unique<String>("abc");
вместо того, чтобы объявить свои unique_ptr
'