C++类虚函数表
来源:互联网 发布:限速路由器软件 编辑:程序博客网 时间:2024/05/03 13:57
#include <iostream>#include <cstdlib>using namespace std;class Base1{public:virtual void f(){cout << "Base1 f()" << endl;}virtual void g(){cout << "Base1 g()" << endl;}virtual void h(){cout << "Base1 h()" << endl;}};class Base2{public:virtual void f(){cout << "Base2 f()" << endl;}virtual void g(){cout << "Base2 g()" << endl;}virtual void h(){cout << "Base2 h()" << endl;}};class Base3{public:virtual void f(){cout << "Base3 f()" << endl;}virtual void g(){cout << "Base3 g()" << endl;}virtual void h(){cout << "Base3 h()" << endl;}};class Base4{public:void f(){cout << "Base4 f()" << endl;}void g(){cout << "Base4 g()" << endl;}void h(){cout << "Base4 h()" << endl;}};class Child : public Base1, public Base2, public Base3, public Base4{public:void h(){cout << "Child h()" << endl;}virtual void e(){cout << "Child e()" << endl;}/*virtual*/ long &getRef(){return value;}private:long value;};int _tmain(int argc, _TCHAR* argv[]){Child c;cout << sizeof(c) << endl;typedef void (*FUNC)();FUNC pFunc;int **ptrTable = (int **)&c;cout << &c << endl;cout << &ptrTable[0] << endl;cout << &ptrTable[1] << endl;cout << &ptrTable[2] << endl;long &value = c.getRef();cout << &value << endl;cout << "---------------------------------" << endl;pFunc = (FUNC)ptrTable[0][0];pFunc();pFunc = (FUNC)ptrTable[0][1];pFunc();pFunc = (FUNC)ptrTable[0][2];pFunc();pFunc = (FUNC)ptrTable[0][3];pFunc();// 注意getRef前的virtual修饰符//pFunc = (FUNC)ptrTable[0][4];//pFunc();cout << "---------------------------------" << endl;pFunc = (FUNC)ptrTable[1][0];pFunc();pFunc = (FUNC)ptrTable[1][1];pFunc();pFunc = (FUNC)ptrTable[1][2];pFunc();cout << "---------------------------------" << endl;pFunc = (FUNC)ptrTable[2][0];pFunc();pFunc = (FUNC)ptrTable[2][1];pFunc();pFunc = (FUNC)ptrTable[2][2];pFunc();cout << "---------------------------------" << endl;system("pause");return 0;}
0 0
- C/C++, 虚函数表
- C/C++--虚函数
- 【C/C++】纯虚函数
- C++-虚函数,多态性,纯虚函数,抽象类
- 【c++】虚函数和虚表
- 【c++】大牛解析虚函数表
- C++:虚函数与抽象类 zz
- 【c++】纯虚函数和抽象类
- C++:纯虚函数与抽象类
- C++_虚函数和抽象类
- [C++]纯虚函数和抽象类
- C++:虚函数用途
- 虚函数详解(C++)
- 虚函数(C++)
- c++-->虚函数 2
- C++ 虚函数
- C++:虚函数
- C++_虚函数
- raw和assets
- WIN7+LR11+IE8无法打开的问题解决方法
- Spring读书笔记-----Spring的Bean之Bean的基本概念
- Neon 指令集 ARMv7/v8 对比
- flexbox弹性盒子布局
- C++类虚函数表
- eXtremeDB hostlinux Target-ARM 的目标码编译
- 为什么开发人员不希望做代码检视???
- java对象和json对象之间互相转换
- 高并发通用技术点
- 字符串的查找
- 继承、封装、多态
- MainStoryBoard 中UITableView Cell的重用
- 飞行模式下打开wifi 和 Setting界面增加Shut down & Reboot功能