纯虚函数也可定义!

今天,我读到《effective c++》的第34条款,里面竟然提到纯虚函数也是可以定义的,大吃一惊,赶快打开vs2005,自己编写了一段代码,编译运行,发现竟然真的可以!

俺的代码:

class A { public: virtual void pureVirtualFunc() = 0; }; void A::pureVirtualFunc() { cout<<"I'am pureVirtualFunc"<<endl; } class B : public A { public: void pureVirtualFunc() { A::pureVirtualFunc(); cout<<"I belong to B!"; } }; int main(void) { B b; b.pureVirtualFunc(); return 0; } 

运行结果:

I'am pureVirtualFunc
I belong to B!请按任意键继续. . .

 

原来抽象类是可以对纯虚函数进行定义的,在其子类中也是可以使用抽象父类的缺省实现!这一切对我来说显得这么突然!好像腿脚一软,站不稳了!是的,以前天天啃个不停个的教材竟然存在如此偏差!等等!好像教材里也没错!里面并没有说“不能”进行函数实现,而是根本就没有提到要去实现。所以老师和天真的我们都默认为不能实现咯!

在此我深深感悟到,目光短浅和学无止境的真正含义了!

你可能感兴趣的:(纯虚函数也可定义!)