#pragma once #include // Forward declarations для избежания циклических #include class INode; class ILink; using NodePtr = std::shared_ptr; using LinkPtr = std::shared_ptr; class ILinkMixin { public: virtual ~ILinkMixin() = default; virtual void linkChild(const NodePtr& child) = 0; virtual void unlinkParent() = 0; virtual LinkPtr getLink() = 0; virtual NodePtr getNode() = 0; };