nstatic void
copy(tree::node* &new_node,
n const tree::node* old_node)
{
n if(old_node) {
n new_node = new
tree::node(old_node->emp);
n copy(new_node->left,
old_node->left);
n copy(new_node->right,
old_node->right);
n }
n}
ntree::tree(const tree
&tree) : //copy constructor
n root(0) {
n copy(root, tree.root);
n}
•This solution has allowed the client to create other node classes to represent other types of data without running into naming conflicts.