C++学习笔记-虚函数及虚函数表
来源:互联网 发布:vscode mysql 编辑:程序博客网 时间:2024/05/18 05:35
C++中的虚函数一直是一个经典问题,今天学习的过程和心路历程写出来分享给大家。
在C++的继承中,当有多个不同子类重写(覆盖)基类的某个方法时,我们想要每个子类调用自己的该方法,此时基类中需要被重写的方法需要加上关键字virtual。那么问题来了,为什么使用virtual可以实现动态调用的目的呢。
这是因为每一个类会为他的虚函数生成一张虚函数表,采用指针的形式指向该类中自己实现的函数,这里使用网上的两张图来说明一下
从图上可以看出,class2在继承了class1以后又重写了class1的虚函数Vfunc2(),class2的虚函数表中名称为Vfunc2的指针就指向了class2的虚函数Vfunc2()。
那么问题又来了,这个虚函数表是在什么时候生成的呢?经过网上查阅资料得知,虚函数表在编译期间就已经生成了。
示例代码有空将来补上,如有错误,敬请指正
0 0
- C++学习笔记-虚函数及虚函数表
- 学习笔记3-C++-虚函数
- C++:函数<学习笔记>
- 虚函数学习笔记
- 【C语言学习笔记】函数及多文件开发
- [C++学习笔记] 虚函数用法及注意事项
- 多态性与虚函数——C/C++学习笔记
- C学习笔记之函数
- C++虚函数表学习笔记
- 学习笔记_虚函数表
- 【从C到C++学习笔记】内联成员函数/成员函数重载及缺省参数
- C/C学习笔记/函数与程序结构
- 《head first c》学习笔记及C语言有用的函数
- C/C++, 虚函数表
- Learn Objective‐C,学习笔记04 协议(Java中的接口,c中的纯虚函数)
- [收集]虚函数及虚函数表
- 再认识虚函数表,及虚函数
- 虚函数及虚函数表
- 【Linux】文件描述符和FILE结构体
- Android 通过包名启动另一个应用(APP)
- mysql数据库sql语句的一些常用优化方法
- instanceof的使用
- 三、SCM 数码管&FPGA 数码管
- C++学习笔记-虚函数及虚函数表
- gcc -o的优化选项
- Hadoop IO
- CMMI过程域的特定目标和特定实践
- List Map sort 排序
- 3GS到iPhone6P+ 历代iPhone屏幕尺寸、像素分辨率
- QT event 使用
- Codeforces Round #412 C
- 毕业论文-Word 2013 学习篇