#pragma once #include "ifaces/INode.h" #include "Logger.h" /// \brief Базовый класс для всех узлов дерева. /// Содержит имя и тип узла, реализует интерфейс INode. class BaseNode : public virtual INode { public: /// \brief Конструктор узла. /// \param name Неуникальное имя узла. BaseNode(std::string name, std::string kind) : name_(std::move(name)), kind_(std::move(kind)) { Logger::get("ConDes").dbg(std::string("--- Base constructor called for: ") + name_); } /// \brief Неуникальное имя узла. const std::string& name() const override { return name_; } const std::string& kind() const override { return kind_; } ~BaseNode() { Logger::get("ConDes").info(std::string("--- Base destructor called for: ") + name_); } protected: std::string name_; std::string kind_; };