0
点赞
收藏
分享

微信扫一扫

C++ 获取类成员函数地址,并通过地址调用函数

b91bff6ffdb5 2022-07-18 阅读 35

class BaseWithoutV {
public:
void func1()
{
MessageBox(0, "BaseWithoutV func1", "", 0);
}
void func2()
{
MessageBox(0, "BaseWithoutV func2", "", 0);
}
private:
int m_data1, m_data2;
};

int main()
{
// 这里打印的可能不是 MessageBox 的上层函数,因为 &BaseWithoutV::func1 可能是一个跳板函数(也就是 MessageBox 的上上层函数)
printf("func1 address : %X \n", &BaseWithoutV::func1);

typedef void (BaseWithoutV:: * fun)();
fun f = &BaseWithoutV::func1;
BaseWithoutV bwv;
(bwv.*f)();

return 0;
}



举报

相关推荐

0 条评论