#pragma once #include "mixins/LazyLinkMixin.h" #include "ifaces/INode.h" #include class BaseNode : public INode, public LazyLinkMixin, public std::enable_shared_from_this { public: //using LazyLinkMixin::linkChild; //using LazyLinkMixin::unlinkParent; //using LazyLinkMixin::getLink; BaseNode(std::string name) : name_(std::move(name)) {} const std::string& name() const override { return name_; } ~BaseNode() { std::cout << "--- Destructor called for: " << name_ << "\n"; } protected: NodePtr getShared() override { return shared_from_this(); } std::string name_; };