博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
虚函数 or 非虚函数
阅读量:5104 次
发布时间:2019-06-13

本文共 645 字,大约阅读时间需要 2 分钟。

1 #include
2 using namespace std; 3 4 class base 5 { 6 public: 7 base(){} 8 virtual void fun(){cout<<"base.fun";} 9 };10 11 class derive:public base12 {13 public:14 derive(){}15 void fun(){cout<<"derive.fun";}16 };17 18 int main()19 {20 base *b=new derive();21 b->fun();22 }

基类中的fun()函数是虚函数或者非虚函数导致了输出结果的不同:

我们知道,继承类的函数列表中先是基类的函数,然后紧接着是继承类的函数,如基类的fun函数是虚有的,那么继承类的fun函数是对基类函数的重写,因此需要覆盖,此时继承类中的函数表中仅有derive::fun,因此b->fun()输出的是derive.fun;如果基类的fun函数不是虚有的,那么继承类中的函数列表中有base::fun和derive::fun两个函数,因此b->fun()输出的是base.fun

转载于:https://www.cnblogs.com/aharr/archive/2012/10/27/2742704.html

你可能感兴趣的文章
视频:"我是设计师"高清完整版Plus拍摄花絮
查看>>
VALSE2019总结(4)-主题报告
查看>>
浅谈 unix, linux, ios, android 区别和联系
查看>>
51nod 1428 活动安排问题 (贪心+优先队列)
查看>>
中国烧鹅系列:利用烧鹅自动执行SD卡上的自定义程序(含视频)
查看>>
Solaris11修改主机名
查看>>
latex for wordpress(一)
查看>>
如何在maven工程中加载oracle驱动
查看>>
Flask 系列之 SQLAlchemy
查看>>
iframe跨域与session失效问题
查看>>
aboutMe
查看>>
【Debug】IAR在线调试时报错,Warning: Stack pointer is setup to incorrect alignmentStack,芯片使用STM32F103ZET6...
查看>>
一句话说清分布式锁,进程锁,线程锁
查看>>
Hash和Bloom Filter
查看>>
SQL Server获取月度列表
查看>>
python常用函数
查看>>
python 描点画圆
查看>>
FastDFS使用
查看>>
服务器解析请求的基本原理
查看>>
pycharm 如何设置方法调用字体颜色
查看>>