primer拾趣--虚拟函数的静态调用
当用类域操作符调用虚拟函数时,我们改变了虚拟机制,使得虚拟函数在编译时刻被静态解析了。例如,基类和派生类都定义了虚拟函数func()。
Base *pb = new Base();
Derived *pd = new Derived();
pb->pb::func();//这样可以调用基类的func函数。
为什么要这样做呢?这样是为了效率!在一个派生类中,常常需要调用基类的实例来完成“已经在基类和派生类实例间被抽取出来的操作”。
C++的每一个知识点(语法点)都有它存在或者实际需要的价值。只有理解这个,我们才能化其为我们的内力,灵活运用。
David Cai 09-08-16 于金山公司
Base *pb = new Base();
Derived *pd = new Derived();
pb->pb::func();//这样可以调用基类的func函数。
为什么要这样做呢?这样是为了效率!在一个派生类中,常常需要调用基类的实例来完成“已经在基类和派生类实例间被抽取出来的操作”。
C++的每一个知识点(语法点)都有它存在或者实际需要的价值。只有理解这个,我们才能化其为我们的内力,灵活运用。
David Cai 09-08-16 于金山公司