关于虚函数的那些事

             首先介绍一下虚函数的一些知识:

             虚函数分为普通虚函数和纯虚函数两种。虚函数是对于面向对象中多态性的支持,而对多态性的支持就是由以上两种形式进行实现的。很多初学者在开始学习虚函数的时候只是对虚函数的一些理论知识有所了解,但是对于具体的实现可能还是比较模糊,本人就是经历这个过程之后,才慢慢熟悉并比较深入的了解虚函数是如何实现多态性的。

             普通虚函数是在基类中声明并实现,而对于派生类可以继承基类的虚函数并可以重新实现,可以返回不通的值也可以返回相同的值。其派生类也可以不对其父类的虚函数进行继承,是一种动态的使用方法,当某个类调用其虚函数的时候,继承的值是最近的返回值。举个列子:我们定义了一个class A是一个基类,在这个基类中我定义了一个virtual fun() 并对fun()进行了实现返回了一个value值,接着我们又定义了两个或者更多的子类假设是两个,分为为B,C我们再派生类B中重载了这个virtual fun() 返回了一个新的value值,继而在派生类C中有重新实现了这个虚函数,返回了一个新的value值,系统会自动在识别最新使用的那个返回值作为结果。这样多态性的实现就狠明了了。

             纯虚函数就不一样了,在其基类中声明无需具体的实现,也就是说你生命一个virtual类型的函数,不用再该函数中写具体的实现方法,但是必须在其派生类中继承该虚函数并实现该虚函数,否则程序会出现编译不通过的现象,在引用该虚函数的时候也要对应到相应的实现模块。

             以上是个人的一些心得,如果有错误的认识,请高手指点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值