#pragma once #include "mixins/LazyLinkMixin.h" #include "ifaces/INode.h" #include class BaseNode : public virtual INode { public: BaseNode(std::string name) : name_(std::move(name)) { std::cout << "--- Base constructor called for: " << name_ << "\n"; } const std::string& name() const override { return name_; } ~BaseNode() { std::cout << "--- Base destructor called for: " << name_ << "\n"; } protected: std::string name_; };