多态性

多态性是指为一个函数名称关联多种含义的能力。是指通过一种叫做晚期绑定的特殊机制,为一个函数名称关联多个含义。

虚函数是指在某种意义上,能在定义它之前使用的一个函数。

将一个函数设定为虚函数相当于告诉编译器,我不知道这个函数如何实现,登载程序中使用它的时候,再从对象实例中获得它的实现。等到运行时再确定一个过程的具体实现,再从对象实例中获得它的实现。

等到运行时再确定一个过程的实现,这种技术成为晚期绑定,或者动态绑定,虚函数正式c++提供的晚期绑定的具体手段。

虚函数细节:

如果一个函数派生类中的定义有别于基类中的定义,而且希望它成为一个虚函数,就要为基类中函数声明添加保留字virtual在派生类中可以不添加virtual如果一个函数在基类中是虚函数那么派生类中就自动成为虚函数(然而为了澄清,最好在派生类中也将虚函数声明标记为virtual,尽管这么做不是必须的)

保留字virtual 在函数声明中使用而不能在函数定义中添加

编译器和运行是环境需要为虚函数做多的多的工作,那么就是会影响程序的执行效率。 

虚函数定义在派生类中发生改变叫做函数的覆盖,一些c++方面的著作区分了重定义和覆盖两个术语,两者都是指在派生类中更改函数定义,如果函数是虚函数,就称为覆盖,如果函数不是虚函数就成为重定义,对于程序员来说有点无聊,因为两种情况下所做的事情是相同的,不过编译器对着两种情况是区别对待的。


多态性是指借助晚期绑定技术,为一个函数名关联多种含义的能力,因此多态性,晚期绑定,虚函数,其实是一个主题。













评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值