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

Зміст курсу

Розумні Вказівники C++

Розумні Вказівники C++

1. Вступ до Розумних Вказівників
2. Унікальні Вказівники
3. Спільні Вказівники
4. Слабкі Вказівники
5. Просунуті Теми

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

Розумний вказівник std::weak_ptr не володіє об'єктом, на який він вказує. Це, по суті, означає, що слабкий вказівник не збільшує лічильник посилань об'єкта.

std::weak_ptr дозволяє доступ до об'єкта, керованого спільними вказівниками, без продовження його життєвого циклу. Якщо всі спільні вказівники виходять за межі області видимості, об'єкт видаляється, навіть якщо слабкий вказівник все ще існує. Це корисно для спостереження за спільними об'єктами без запобігання їх видаленню.

cpp

main

copy
12345678910111213141516171819
#include <iostream> #include <memory> struct Resource { Resource() { std::cout << "Resource created\n"; } ~Resource() { std::cout << "Resource destroyed\n"; } }; int main() { std::shared_ptr<Resource> sp1 = std::make_shared<Resource>(); std::weak_ptr<Resource> wp = sp1; // Weak pointer does not increase ref count std::cout << "Shared pointer going out of scope...\n"; sp1.reset(); // Resource is deleted if (wp.expired()) std::cout << "Resource no longer exists\n"; }

Життєвий цикл слабкого вказівника

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

Їх життєвий цикл залежить від розділених вказівників. Коли останній розділений вказівник знищується, об'єкт звільняється, і слабкий вказівник стає недійсним. Він все ще існує, але стає порожнім.

question mark

Якщо 10 розділених вказівників і 1 слабкий вказівник посилаються на ресурс, що відбувається, коли всі розділені вказівники виходять за межі області видимості?

Select the correct answer

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

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

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

Секція 4. Розділ 1
Ми дуже хвилюємося, що щось пішло не так. Що трапилося?
some-alt