0

我有两个类,其中的方法如下所示;

|----AVL----| |-----RB--------|
| | | |
| | | |
| - 插入 | | -平衡 |
| | | |
| - 平衡| | |
| | | |
|-----------| |--------------|

在 AVL 的“插入”方法中,它称为“平衡”。
RB继承了AVL,所以我可以使用AVL的插入方法。现在当我调用 RB::insert() 时,它会调用 AVL::insert() 然后是 AVL::balance(),但我希望它从 AVL::insert() 调用 RB::balance(),当一个RB 对象调用“插入”。

4

1 回答 1

4

这是虚拟方法的经典案例:AVL.balance virtualRB. 然后将根据调用的对象类型调用正确的实现balance——调用的代码balance将作为AVL.

于 2012-09-25T22:28:05.347 回答