C++中怎么获取类的成员函数的函数指针

 我来答
叹烙好玫焦覆bF
2014-11-02 · 超过53用户采纳过TA的回答
知道小有建树答主
回答量:106
采纳率:0%
帮助的人:91.8万
展开全部
虾米意思?是指类的成员变量是否可以指向类中的成员函数吗?如果这样子的,类的成员函数指针就是用来起这个作用,mfc消息路由机制也是机遇此原理。#include <stdio.h>class A{public: A() \/\/ Ctor { m_pfn1 = A::foo; \/\/ 有没有取地址符号一样 m_pfn2 = &A::bar; (this->*m_pfn1)(); (this->*m_pfn2)(0); } void foo(){printf("foo\n");} \/\/ 类函数 virtual void bar(int){printf("bar\n");} void (A::*m_pfn1)(); \/\/ 类函数指针成员变量 void (A::*m_pfn2)(int); \/\/ 类函数指针成员变量};int _tmain(int argc, _TCHAR* argv[]){ \/\/ 1. 类函数指针成员变量的使用 A a; A* p = &a; (a.*(a.m_pfn1))(); (a.*(a.m_pfn2))(0); \/\/ 多态 (p->*(p->m_pfn1))(); (p->*(p->m_pfn2))(0); \/\/ 多态 \/\/ 2. 类外函数指针变量的使用 typedef void (A::*MemFunPtr)(); MemFunPtr memPtr = &A::foo; (a.*memPtr)(); (p->*memPtr)(); return 0;}\r\n补充:\r\n->* 和.* 是C++新增加的操作符号,专用类成员指针变量取址(成员函数指针,成员变量指针)\r\n
百度网友da8a46e
2015-10-24 · TA获得超过7293个赞
知道小有建树答主
回答量:2307
采纳率:93%
帮助的人:190万
展开全部
1.一个指向外部函数的指针声明为:

void(*pf)(char*,constchar*);
void strcpy(char* dest,constchar* source);
pf=strcpy;
2.一个指向类A成员函数的指针声明为:

void(A::*pmf)(char*,constchar*);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式