调用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;
}
#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;
}
相关文章推荐
- Cocos2d-x下Lua调用自定义C++类和函数的最佳实践
- cocos进阶教程(1)Lua调用自定义C++类和函数的最佳实践
- Lua调用自定义C++类 以及打包到Android
- c++类中静态函数不能调用类中的非静态函数原因
- C#调用托管C++类(DLL)
- lua调用C++类
- CC3.2+Lua(8) ——Lua调用自定义C++类
- Cocos2d-x下Lua调用自定义C++类和函数的最佳实践
- Cocos2d-x下Lua调用自定义C++类和函数的最佳实践
- python 调用 c++类
- Cocos2d-x下Lua调用自定义C++类和函数的最佳实践
- C++类调用和回调实例
- C++类对象内存模型与成员函数调用分析(中)
- JNI调用C++类的方式
- C#调用C++类(以COM组件的形式)
- Cocos2d-Lua 3.12 生成绑定 导出C++类给LUA调用( tolua genbindings.py 的使用)
- Cocos2d-x下Lua调用自定义C++类和函数的最佳实践
- 通过C++类方法地址调用类的虚方法
- lua 调用c++类
- Cocos2d-x下Lua调用自定义C++类和函数的最佳实践