working...?

iters
Сергей Маринкевич 5 months ago
parent f5f78308bd
commit 0912566c5f

@ -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;
};

@ -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();

@ -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() {

Loading…
Cancel
Save