Код IT Загрузка примера кода…

C++ main.cpp
// Единственное владение
auto connection = std::make_unique<NetworkConnection>(endpoint);

// Совместное владение
std::shared_ptr<Document> shared_doc = std::make_shared<Document>(content);

// Избегание циклических ссылок
class Node 
{
public:
    void set_parent(std::weak_ptr<Node> parent) { parent_ = parent; }
    std::shared_ptr<Node> get_parent() { return parent_.lock(); }

private:
    std::weak_ptr<Node> parent_;
    std::vector<std::shared_ptr<Node>> children_;
};
// Единственное владение
auto connection = std::make_unique<NetworkConnection>(endpoint);

// Совместное владение
std::shared_ptr<Document> shared_doc = std::make_shared<Document>(content);

// Избегание циклических ссылок
class Node 
{
public:
    void set_parent(std::weak_ptr<Node> parent) { parent_ = parent; }
    std::shared_ptr<Node> get_parent() { return parent_.lock(); }

private:
    std::weak_ptr<Node> parent_;
    std::vector<std::shared_ptr<Node>> children_;
};