From 0912566c5fa2d13c64ad2e9facde78222824aaa2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A1=D0=B5=D1=80=D0=B3=D0=B5=D0=B9=20=D0=9C=D0=B0=D1=80?= =?UTF-8?q?=D0=B8=D0=BD=D0=BA=D0=B5=D0=B2=D0=B8=D1=87?= Date: Tue, 22 Jul 2025 19:36:19 +0700 Subject: [PATCH] working...? --- include/ifaces/INode.h | 7 +++---- include/mixins/LazyLinkMixin.h | 3 ++- include/nodes/BaseNode.h | 3 +++ 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/include/ifaces/INode.h b/include/ifaces/INode.h index 9ebbc70..5959b69 100644 --- a/include/ifaces/INode.h +++ b/include/ifaces/INode.h @@ -1,11 +1,10 @@ #pragma once #include "ifaces/ILinkMixin.h" +#include "ifaces/ILink.h" #include -// INode является ILinkMixin, поэтому полный #include здесь оправдан -class INode : public ILinkMixin { +class INode : public virtual ILinkMixin { public: - ~INode() override = default; + ~INode() = default; virtual const std::string& name() const = 0; - virtual NodePtr getSelf() = 0; }; diff --git a/include/mixins/LazyLinkMixin.h b/include/mixins/LazyLinkMixin.h index 9091901..1bfbfb0 100644 --- a/include/mixins/LazyLinkMixin.h +++ b/include/mixins/LazyLinkMixin.h @@ -1,12 +1,13 @@ #pragma once #include #include "ifaces/INode.h" +#include "ifaces/ILinkMixin.h" #include "links/LeafLink.h" #include "links/OneToManyLink.h" #include template -class LazyLinkMixin : public ILinkMixin { +class LazyLinkMixin : public virtual ILinkMixin { public: void linkChild(const NodePtr& childNode) override { LinkPtr childLink = childNode->getLink(); diff --git a/include/nodes/BaseNode.h b/include/nodes/BaseNode.h index c03894d..900855d 100644 --- a/include/nodes/BaseNode.h +++ b/include/nodes/BaseNode.h @@ -7,6 +7,9 @@ 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() {