永发信息网

如何在c++中声明指向对象的成员函数的函数指针?

答案:3  悬赏:50  手机版
解决时间 2021-03-19 20:45
如何在c++中声明指向对象的成员函数的函数指针?
最佳答案
并不存在指向对象成员的函数指针。


指向对象成员的指针称为成员指针,和函数指针并不等价,也就是不能当作函数指针使用。
struct A
{
 void foo()
 {

 }

 void goo()
 {

 }
};

void (A::*p)(); // p就是一个A类对象中没有参数返回void的成员函数的成员指针

int main()
{
 p = &A::foo; // 然后可以用这种写法对它赋值。
 p = &A::goo;

 int A::*q; // 数据成员同样可以有成员指针

 q = &A::x;
 q = &A::y;

 A a;

 (a.*p)(); // 成员指针的用法,必须和对象配套使用

 a.*q = 1;
}

对于必须使用函数指针的情况,可能需要获得静态成员函数的函数指针(静态成员函数是可以正常获得函数指针的)。并在调用时,把对象的地址作为参数传递。

全部回答
int main()
{ void (Test::*p)(int x);
Test test;
p=&test.show; //必须取地址
(test.*p)(5); // 调用必须关联test
getchar();
return 0;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
华联超市华常豪店在哪里啊,我有事要去这个地
公司治理具体有哪些内容
前高汉村地址在什么地方,想过去办事,
形容不成熟男人的词语
在吕梁地区,江阴中学、贺昌中学、吕梁学院附
双城记 好词好句
臭氧和.生理盐水混合输入人体有!什么作用
2015年去欧洲旅游办签证要银行存款多少钱
南丰县房产交易所太和工作站在哪里啊,我有事
wpsoffce文档怎么设置可以多少页?
QQ聊天窗口怎么设置背景图片
河北省宣化哪有养驴基地呢
这是什么建筑 这个钟
警察撞了人就可以不负责吗
寻,北京匡威专卖店?
推荐资讯
近朱者赤,近墨者黑的典故来自哪里?
那些葡萄,用英语怎么说
全场2折起是什么意思
请问加州45秒开奖每天多少期,几点开始?
瓶邪娱乐圈文
梦到放学时过马路,看见有人被驶来的公交车撞,
怎样通过已知基因序列来确定这个基因的保守基
怎样辨别真假桂花蜜
填空题只有当两种化合物互相交换成分,生成物
direct path load和conventional path load的
晚上十一点是什么时辰
棕榈四季花园地下停车场地址在哪,我要去那里
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?