Quote Originally Posted by Thantos View Post
The only call to insert that I see in your main is
bn = bn->insert(num,bn);
But you are dereferencing a null pointer to make the call.
But unless the function is virtual AND the table for the object is part of the object itself, it should call the insert function [yes, that's a BAD thing to do, but you can actually get away with it in many compilers - but yes, it's undefined].

As Laserlight points out, you probably should split the tree and the node from each other.