Simon Bruder
c2804e2d3b
The test is not very pretty, I may think of something nicer (once I learn how to do it).
34 lines
837 B
C++
34 lines
837 B
C++
#include <iostream>
|
|
#include <sstream>
|
|
|
|
#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); }
|