I have one large class with member functions that do very similar things -- for example, like finding the height of a tree but depend on which type of tree, etc. Now I am trying to clean up my code, so that I use more than one class: one class for each tree.

So if I want to use the same name for a function in both classes but have different implementations I would create virtual functions?

Also, when I do that I keep getting an error that says cannot define member function ‘a_Tree::find_height’ within ‘b_Tree’, where a_Tree and b_Tree are two different classes...