working...?

This commit is contained in:
Сергей Маринкевич
2025-07-22 19:36:19 +07:00
parent f5f78308bd
commit 0912566c5f
3 changed files with 8 additions and 5 deletions
+3 -4
View File
@@ -1,11 +1,10 @@
#pragma once
#include "ifaces/ILinkMixin.h"
#include "ifaces/ILink.h"
#include <string>
// 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;
};
+2 -1
View File
@@ -1,12 +1,13 @@
#pragma once
#include <iostream>
#include "ifaces/INode.h"
#include "ifaces/ILinkMixin.h"
#include "links/LeafLink.h"
#include "links/OneToManyLink.h"
#include <memory>
template <class TLink>
class LazyLinkMixin : public ILinkMixin {
class LazyLinkMixin : public virtual ILinkMixin {
public:
void linkChild(const NodePtr& childNode) override {
LinkPtr childLink = childNode->getLink();
+3
View File
@@ -7,6 +7,9 @@ class BaseNode : public INode,
public LazyLinkMixin<OneToManyLink>,
public std::enable_shared_from_this<BaseNode> {
public:
//using LazyLinkMixin<OneToManyLink>::linkChild;
//using LazyLinkMixin<OneToManyLink>::unlinkParent;
//using LazyLinkMixin<OneToManyLink>::getLink;
BaseNode(std::string name) : name_(std::move(name)) {}
const std::string& name() const override { return name_; }
~BaseNode() {