[面经] 访问C++虚函数表
2013-07-31 11:49
218 查看
#include <cstdio> class A { public: virtual void a(void) { printf("A:a(%p)\n", this); } private: virtual void b(void) { printf("A:b(%p)\n", this); } }; class B : public A { public: virtual void c(void) { printf("B:c(%p)\n", this); } private: virtual void d(void) { printf("B:d(%p)\n", this); } }; class C : public B { public: virtual void e(void) { printf("C:e(%p)\n", this); } private: virtual void f(void) { printf("C:f(%p)\n", this); } }; int main(void) { A a; B b; C c; // void ***ppp_avf = (void ***)&a; void ***ppp_bvf = (void ***)&b; void ***ppp_cvf = (void ***)&c; printf("a, b, c: %p, %p, %p\n", &a, &b, &c); // for (int i = 0; NULL != (*ppp_avf)[i]; ++i) { // ((void (*)(void))(*ppp_avf)[i])(); // } // printf("\n"); for (int i = 0; NULL != (*ppp_bvf)[i]; ++i) { ((void (*)(void *))(*ppp_bvf)[i])(&b); } printf("\n"); for (int i = 0; NULL != (*ppp_cvf)[i]; ++i) { ((void (*)(void *))(*ppp_cvf)[i])(&c); } printf("\n"); return 0; }
相关文章推荐
- C++虚函数表的理解、通过虚函数表访问非public成员函数
- C++中访问虚函数表获取虚函数地址
- C++ 通过虚函数表,直接外部访问类中的函数,并且脱离类
- C++ 虚函数表解析
- 读书笔记 effective c++ Item 15 在资源管理类中提供对原生(raw)资源的访问
- C++虚函数表解析(转)
- c++三种继承机制和访问权限
- C++ 虚函数、虚函数表、纯虚函数、虚基类---之比较总结
- C++ 中基类及派生类中继承成员访问权限
- 【C/C++学习】error C2248: “CObject::CObject”: 无法访问 private 成员(在“CObject”类中声明)
- c++虚函数表
- C++访问属性
- C++虚函数表解析
- c++继承,访问控制
- C++ 虚函数表解析
- public,private,protected访问权限在Java,C++中的解析
- JAVA访问C++动态库的方法
- C++访问修饰符
- C++嵌套类及对外围类成员变量的访问
- Linux下使用C/C++访问数据库——Oracle之OCI篇