您的位置:首页 > 编程语言 > C语言/C++

调用C++类的private函数

2013-11-14 15:42 141 查看
#结合C++对象模型的知识,调用private函数

#include <iostream>

using namespace std;

class ClassA {

public:

ClassA(const int p): m_d(p) {

}

private:

virtual void fun0() {

cout<< "fun0"<< endl;

}

virtual void fun1() {

cout<< "fun1"<< endl;

}

virtual void fun2() {

cout<< m_d<< endl;

}

int m_d;

};

typedef void (*FUNP)();

int main()

{

ClassA a(8);

FUNP* fp = *(FUNP **)&a; // 得到vptr指向的虚表的地址

cout << fp<< endl;

fp[0]();

fp[1]();

fp[2]();//肯定会很蛋疼的:没有将对象的首地址放到ecx寄存器中,

//而该成员函数会通过ecx中存储的值去访问数据成员m_d的

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: