本文主要是介绍Derived class重新定义继承而来的Private Virtual函数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
基类有一个公有函数,也有一个私有的虚函数,共有函数调用此私有虚函数,那么,当派生类继承基类时,派生类可重写此私有虚函数,然后当派生类对象调用healthValue()时,doHealthValue()将调用派生类重写的doHealthValue()。这种手法称为non-virtual interface(NVI)。这个non-virtual函数(healyhValue)称为virtual函数(doHealthValue)的外覆器。
NVI涉及在Derived classes内重新定义private virtual函数,重新定义若干个Derived class并不调用的函数!!这里并不矛盾。“重新定义virtual 函数”表示某些事“如何”完成,“调用virtual 函数”则表示它“何时”被完成。这些事情都是各自独立互不相关的。NVI允许Derived class重新定义virtual函数,从而赋予它们“如何实现机能”的控制能力,但Base class保留诉说“函数何时被调用”的权力。所以,Derived class可重新定义继承而来的private virtual函数是合情合理的。
(来自Effective C++)
这篇关于Derived class重新定义继承而来的Private Virtual函数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!