c++虚函数表详解(五)
来源:互联网 发布:ab plc编程软件下载 编辑:程序博客网 时间:2024/05/30 04:12
基类和派生类的虚函数同名时,派生类对象的虚函数表如何工作?
#include <iostream>#include <tchar.h>using namespace std;class Human{public:virtual void Print(){cout << _T("Human::Print") << endl;}};class Man: public Human{public:virtual void Print(){cout << _T("Man::Print") << endl;}};int _tmain(int argc, TCHAR argv[], TCHAR envp[]){typedef void(*FUN)();Man Modi;int* AddrOfModiVTable = (int*)(*(int*)(&Modi));FUN pFunc = (FUN)(*AddrOfModiVTable);pFunc();return 0;}
执行结果如下所示:
答案:当基类和派生类存在同名虚函数的时候,派生类对象的虚函数表里原先存储基类虚函数地址的那一项存储的同名的派生类虚函数地址。
换句话说,同名的派生类虚函数地址占据了基类虚函数的地址在派生类虚函数表中的位置。
- c++虚函数表详解(五)
- 虚函数详解(C++)
- C语言基础教程(五)函数
- C语言函数集(五)
- C++(五) 函数
- linux C编程(五)函数指针与函数调用
- LESS详解之函数(五)
- C++函数指针实例详解(篇五)
- C#:一个增强的TcpClient(五)构造函数
- linux下C语言多线程(五)杂项函数
- C++(五) access函数判断文件是否存在
- linux下C语言多线程(五)杂项函数
- C语言学习(五)函数,预处理命令
- C语言基础(五)函数、多文件开发
- MATLAB学习(五)MATLAB中调用C语言函数
- C图形函数详解(转)
- (转)C语言sprintf函数详解
- C/C++中system()函数详解
- C 陷阱与缺陷
- javascript常用代码段
- python中的 new-style class 及其实例详解
- 购物车分析与需求
- sprintf snprintf strcpy memcpy 区别及应用
- c++虚函数表详解(五)
- spring的BeanFactory和ApplicationContext源码详解(一)
- 使用参数化查询防止SQL注入漏洞
- gnome下设置窗口真正透明的方法
- [ASP.NET]GridView触发SelectedIndexChanged事件
- 最优二分搜索树
- spring的BeanFactory和ApplicationContext源码详解(二)
- Ubuntu 10.04 开机黑屏问题的解决方案
- 《P道理-ERP项目实施手记》出版了,敬请关注!