您必须虚拟化包装函数吗?
Do You Have to Virtualize Wrapper Functions?
假设我有一个 class BST 和一个 child class RBT。 class BST 有一个包装函数如下:
void BST::walk(ostream& to)
{
inorder_walk(root, to);
}
其中inorder_walk
是虚函数。当我的 RBT class 中有一个新的虚拟化 inorder_walk
函数时,我是否也需要将 walk
虚拟化,即使在两个 class 中都是 walk
需要做的就是调用inorder_walk
?也就是说,虽然 walk
函数不是虚函数,但当它在其中调用虚函数时,C++ 是否知道调用虚函数?预先感谢您的回答!
不,您不需要将其虚拟化。
假设我有一个 class BST 和一个 child class RBT。 class BST 有一个包装函数如下:
void BST::walk(ostream& to)
{
inorder_walk(root, to);
}
其中inorder_walk
是虚函数。当我的 RBT class 中有一个新的虚拟化 inorder_walk
函数时,我是否也需要将 walk
虚拟化,即使在两个 class 中都是 walk
需要做的就是调用inorder_walk
?也就是说,虽然 walk
函数不是虚函数,但当它在其中调用虚函数时,C++ 是否知道调用虚函数?预先感谢您的回答!
不,您不需要将其虚拟化。