Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpOpSpSh 133 of 150 menu
◀ ▶

Общий указатель shared_ptr в C++

Иногда объект должен жить, пока на него ссылается хотя бы один владелец.

Указатель shared_ptr делит владение: несколько таких указателей могут указывать на один и тот же объект в куче. Копирование shared_ptr увеличивает число владельцев, а когда последний исчезает - объект удаляется. Запишем класс User:

#include <iostream> #include <memory> #include <string> class User { public: std::string name; User(std::string name) : name(name) {} };

Создадим два имени на один объект и выведем поле через вторую копию:

int main() { std::shared_ptr<User> lead = std::make_shared<User>("ann"); std::shared_ptr<User> copy = lead; std::cout << copy->name << "\n"; return 0; }

Сделайте класс Team с полем title. Создайте shared_ptr на объект, скопируйте его во вторую переменную и выведите заголовок через копию - объект должен пережить обе переменные до конца main.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить