Do You Have to Virtualize Wrapper Functions?

Suppose I have a class BST and a child class RBT. The class BST has a wrapper function as follows:

void BST::walk(ostream& to)
{
    inorder_walk(root, to);
}

Where inorder_walk is a virtual function. When I have a new virtualized inorder_walk function in my RBT class, do I need to make walk virtual as well, even though in both classes all walk needs to do is call inorder_walk? That is, although the walk function isn’t virtual, when it calls a virtual function inside of it, does C++ know to call the virtualized function? Thanks in advance for your answers!

Answer

No, you do not need to make it virtual.

Leave a Reply

Your email address will not be published. Required fields are marked *