C语言中可以用函数地址直接调用函数:
void print ()
{
printf ("function print");
}
typdef void (*fun)();
fun f = print;
f();
C++中类非静态成员函数必须通过实例去调用,C++中类成员函数调用:
class test
{
public:
void print ()
{
printf ("function print");
}
};
我们同样可以通过定义函数指针来调用如下:
typedef void (test::*fun)(); fun f = &test::print; test t; (t.*f)();
如果我们想取函数地址怎么办,直接强转会报错
unsigned int a = reinterpret_cast(f);//编译错误 char buf [32] = {0}; sprintf(buf , "%u", f); int a = atoi( buf);
其实我们知道类成员函数只是函数第一个参数是this指针,但是this指针不是通过普通函数参数压栈方式,而是放进ecx中。
C++中怎么获取类的成员函数的函数指针?
全局函数,或者类的静态函数指针都很好获取, 但普通成员函数指针该怎么取得并调用?
用一个实际代码来说明。
class A
{
public:
static void staticmember(){cout<<"static"<
罚罪1+2最新一集未删减在线看-罚罪1+2全80集蓝光高清1080p无删减资源夸克免费观看入口
罚罪1+280集高清完整版迅雷云盘下载1080P(4k)资源
杨紫《生命树》全集高清1080P/4K阿里云盘资源下载无删减
罚罪1+2在哪看?罚罪1+2全80集高清未删减在线观看入口地址
韩剧再婚皇后1080p迅雷磁力链接分享-韩剧再婚皇后高清完整版迅雷云盘下载1080P(4k)资源
如果我不曾见过太阳高清无删减夸克在线看-如果我不曾见过太阳蓝光高清1080p无删减资源夸克免费转存