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

bookСтворення та Спільне Використання Спільних Вказівників

Рекомендований підхід

Рекомендований спосіб створення спільного вказівника - це використання функції std::make_shared. Цей підхід зазвичай більш ефективний та виразний у порівнянні з використанням new. Він виділяє пам'ять для об'єкта та контрольного блоку (лічильник посилань) за один крок. Наприклад:

make_shared.h

make_shared.h

copy
12
// Create a shared pointer to an integer std::shared_ptr<int> p_int = std::make_shared<int>(42);

Вищенаведений рядок виділяє динамічне ціле число і також ініціалізує спільний вказівник на нього з лічильником посилань, рівним одному.

Непідтримуваний підхід

Ви також можете створювати спільні вказівники, використовуючи new, але цей метод не рекомендується, оскільки він не є виразним і ефективним. Синтаксис цього підходу вимагає передати об'єкт до конструктора спільного вказівника.

creating_shared_pointer.h

creating_shared_pointer.h

copy
12
// Also creates a shared pointer to an integer std::shared_ptr<int> p_int(new int(42));

Виділення динамічного цілого числа, а потім передача його до конструктора спільного вказівника. Однак, блок керування (лічильник посилань) буде ініціалізовано всередині конструктора.

Це означає, що ми виконуємо дві окремі ініціалізації, що є неефективним, і помилка може бути згенерована.

Передача Спільних Вказівників

Спільні вказівники спеціально створені для безпечного спільного використання. Давайте розглянемо кілька способів, як ми можемо їх передавати.

question mark

Якщо чотири екземпляри shared_ptr розділяють володіння одним і тим же динамічним об'єктом, коли буде викликано деструктор об'єкта?

Select the correct answer

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

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

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

Секція 3. Розділ 2

Запитати АІ

expand

Запитати АІ

ChatGPT

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

Awesome!

Completion rate improved to 5.56

bookСтворення та Спільне Використання Спільних Вказівників

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

Рекомендований підхід

Рекомендований спосіб створення спільного вказівника - це використання функції std::make_shared. Цей підхід зазвичай більш ефективний та виразний у порівнянні з використанням new. Він виділяє пам'ять для об'єкта та контрольного блоку (лічильник посилань) за один крок. Наприклад:

make_shared.h

make_shared.h

copy
12
// Create a shared pointer to an integer std::shared_ptr<int> p_int = std::make_shared<int>(42);

Вищенаведений рядок виділяє динамічне ціле число і також ініціалізує спільний вказівник на нього з лічильником посилань, рівним одному.

Непідтримуваний підхід

Ви також можете створювати спільні вказівники, використовуючи new, але цей метод не рекомендується, оскільки він не є виразним і ефективним. Синтаксис цього підходу вимагає передати об'єкт до конструктора спільного вказівника.

creating_shared_pointer.h

creating_shared_pointer.h

copy
12
// Also creates a shared pointer to an integer std::shared_ptr<int> p_int(new int(42));

Виділення динамічного цілого числа, а потім передача його до конструктора спільного вказівника. Однак, блок керування (лічильник посилань) буде ініціалізовано всередині конструктора.

Це означає, що ми виконуємо дві окремі ініціалізації, що є неефективним, і помилка може бути згенерована.

Передача Спільних Вказівників

Спільні вказівники спеціально створені для безпечного спільного використання. Давайте розглянемо кілька способів, як ми можемо їх передавати.

question mark

Якщо чотири екземпляри shared_ptr розділяють володіння одним і тим же динамічним об'єктом, коли буде викликано деструктор об'єкта?

Select the correct answer

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

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

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

Секція 3. Розділ 2
some-alt