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[], які можуть зробити код більш вразливим до проблем, пов'язаних з пам'яттю.

make_unique.h

make_unique.h

copy
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 виділяє динамічний ресурс і повертає унікальний вказівник, який ним володіє. Коли унікальний вказівник виходить за межі області видимості, ресурс автоматично звільняється.

new_unique_ptr.h

new_unique_ptr.h

copy
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

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Awesome!

Completion rate improved to 5.56

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

Свайпніть щоб показати меню

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

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

make_unique.h

make_unique.h

copy
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 виділяє динамічний ресурс і повертає унікальний вказівник, який ним володіє. Коли унікальний вказівник виходить за межі області видимості, ресурс автоматично звільняється.

new_unique_ptr.h

new_unique_ptr.h

copy
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
some-alt