Общий указатель 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.