C++纯虚函数定义

看代码时时无意看到代码里某类的纯虚函数居然有实现,吓我一跳,果真学无止境啊!
在此转载相关文章一篇,以便遗忘:https://blog.csdn.net/happymawolf/article/details/6369585

今天,我读到《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 pureVirtualFuncI belong to B!请按任意键继续. . .

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

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值