This is not a leak ... yet. However, if vector goes out of scope, or you erase , pop_back or do something else that removes elements from the vector, without the first delete element that you delete, you will have a leak on your hands.
The right way to do this is to switch from using vector<node *> to vector<unique_ptr<node>> . Your code will change to
//adds a child node { node* child = new node("blah","blah","blah"); child->Set_Parent(this); children.push_back(std::unique_ptr<node>(child)); }
Or use boost::ptr_vector<node> if you can use Boost.
source share