【C++学习笔记】虚函数(一)

12.3 昨天居然断更了,唉,写博客真是很需要毅力呀,更新上今天的学习笔记。

上次我们讲到多态性的定义以及简述了实现方式以及静态编译和动态编译的概念。这次,我们来具体讲一讲虚函数。

什么是虚函数

在某基类中声明为 virtual 并在一个或多个派生类中被重新定义的成员函数,
用法格式为:virtual 函数返回类型 函数名(参数表) {函数体};实现多态性,通过指向派生类的基类指针或引用,访问派生类中同名覆盖成员函数。

解释:对概念做进一步解释,这个定义中对虚函数有两个层面,第一层是在基类中用virtual关键字声明的,第二层是要在多个派生类中被重新定义。

所以,我们如果用:“用virtual定义的函数就是虚函数”来定义虚函数是不准确的。
普通的函数是在编译时就已经确定好其功能并且不能改变了,而虚函数允许函数调用与函数体之间的联系在运行时才建立,也就是在运行时才决定如何动作,就是动态联编。

我们做一个简单的类比就是普通的函数是一个工具,它在使用前就已经确定了这个工具到底是锤子还是榔头还是铁锹,而函数重载则是
把工具集成化做成一把瑞士军刀,你想用这个工具做什么,就能抽出相应的工具,函数重载开起来似乎很方便了,但是这把瑞士军刀里到底有什么工具是定死了的,也就是说,**在编译后,这把军刀里有哪些工具是无法改变的。**而虚函数是什么呢?虚函数就是给你钱然后告诉你一个工具商店,我这个程序要使用一个工具,具体是什么工具呢,我不知道

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值