C++纯虚函数定义

  有时候,基类中的虚函数是为了派生类中的使用而声明定义的。此类函数我们叫做纯虚函数,不需要写成空函数的形式,一般只需要声明成:

      virtual 函数类型 函数名(形参表列)=0;

最后面的“=0“并不代表函数返回值为0,只是形式上的作用,告诉编译系统”这是纯虚函数”;

      这是一个声明语句,最后应有分号。

但是,不代表此函数不能定义,下面转载的文章说明了对纯虚函数定义和调用的方式

看代码时时无意看到代码里某类的纯虚函数居然有实现,吓我一跳,果真学无止境啊!
在此转载相关文章一篇,以便遗忘: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!请按任意键继续. . .

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

参考:

1. c++中虚函数和纯虚函数定义 - FreeBamb - 博客园 (cnblogs.com) 

2. C++纯虚函数定义_风居住的城市-CSDN博客_c++纯虚函数定义

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值