#include #include #include "node.h" unsigned int node::node_id = 0; node::node(const std::string &name) : name(name) { node_id++; if (name.empty()) { std::stringstream node_sm; node_sm << "node_" << node_id; this->name = node_sm.str(); } } node::~node() { std::cout << "enter ~node() of \"" << get_name() << "\"" << std::endl; for (node *child : children) { delete child; } std::cout << "leave ~node() of \"" << get_name() << "\"" << std::endl; } std::string node::get_name() const { return name; } void node::set_name(const std::string new_name) { this->name = new_name; } unsigned int node::get_nr_children() const { return children.size(); } node *node::get_child(std::size_t i) const { return children[i]; } void node::add_child(node *child) { children.push_back(child); }