Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Вступ до Унікальних Вказівників | Унікальні Вказівники
Розумні Вказівники C++

book
Вступ до Унікальних Вказівників

Щоб створити std::unique_ptr, ви можете використовувати std::make_unique. Це функція, яка забезпечує безпечний та ефективний спосіб створення унікальних вказівників.

Це чудова альтернатива використанню операторів new/delete та new[]/delete[], які можуть зробити код більш вразливим до проблем, пов'язаних з пам'яттю.

h

make_unique

copy
// Using `std::make_unique` to create a unique pointer to a vector of integers
std::unique_ptr<std::vector<int>> p_unique_vector = std::make_unique<std::vector<int>>();
12
// Using `std::make_unique` to create a unique pointer to a vector of integers std::unique_ptr<std::vector<int>> p_unique_vector = std::make_unique<std::vector<int>>();

std::make_unqiue виділяє динамічний ресурс і повертає унікальний вказівник, який ним володіє. Коли унікальний вказівник виходить за межі області видимості, ресурс автоматично звільняється.

h

new_unique_ptr

copy
// Insecure way to create a unique pointer for a vector of integers.
std::unique_ptr<std::vector<int>> p_unique_vector(new std::vector<int>());
12
// Insecure way to create a unique pointer for a vector of integers. std::unique_ptr<std::vector<int>> p_unique_vector(new std::vector<int>());

Вектор p_unique_vector у наведеному вище коді все ще буде автоматично знищено, коли унікальний вказівник виходить за межі області видимості. Однак, для максимальної безпеки від винятків і кращих практик коду, завжди віддавайте перевагу використанню std::make_unique.

question mark

Яка основна перевага використання std::make_unique над new при створенні std::unique_ptr?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 1
We use cookies to make your experience better!
some-alt