c++怎样通过函数指针调用成员函数

类的成员函数地址可以取出来,但是不能通过取出来的指针去调用成员函数,成员函数是public的把函数指针的定义放到类里面也没用... 类的成员函数地址可以取出来,但是不能通过取出来的指针去调用成员函数,成员函数是public的
把函数指针的定义放到类里面也没用
展开
 我来答
育知同创教育
2016-09-06 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
展开全部
函数存放在内存的代码区域内,它们同样有地址.如果我们有一个int test(int a)的函数,那么,它的地址就是函数的名字,这一点如同数组一样,数组的名字就是数组的起始地址。

1、函数指针的定义方式:data_types (*func_pointer)( data_types arg1, data_types arg2, ...,data_types argn);
例如: int (*fp)(int a); //这里就定义了一个指向函数(这个函数参数仅仅为一个int类型,函数返回值是int类型)的指针fp。
例子:

int test(int a)
{
return a;
}
int main(int argc, const char * argv[])
{

int (*fp)(int a);
fp = test;
cout<<fp(2)<<endl;
return 0;
}

注意,函数指针所指向的函数一定要保持函数的返回值类型,函数参数个数,类型一致。
追问
我这里函数是类的成员函数,不是普通函数,普通函数是可以的。
这里的问题是对象在调用成员函数的时候系统会隐藏的传入一个this指针,所以成员函数看似有2个参数其实是3个参数,但是如何给指向成员函数的指针显式的传入this指针
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式