Разница в назначении / инициализации общего указателя - PullRequest
0 голосов
/ 18 января 2019

Мы можем инициализировать shared_pointer тремя способами.

1. shared_ptr<int>p(new int(8));
2. shared_ptr<int>p=shared_ptr<int>(8);
3. shared_ptr<int>p=make_shared<int>(8);

Мы знаем, что 3-й оператор имеет преимущество перед 1-м оператором в плане инициализации одной операции и поддержки обработки исключений.

Есть ли разница между 1-м и 2-м утверждениями в зависимости от выданного исключения, производительности и т. Д.

1 Ответ

0 голосов
/ 21 января 2019

Второй способ инициализации не работает.Оно должно быть:

shared_ptr<int> p2 = shared_ptr<int>(new int(8));

Кроме того, нет разницы между 1 и 2, поскольку один и тот же конструктор используется для обоих.

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