深圳热线

什么是成员函数指针?成员函数指针的语法是什么?

2023-03-22 10:10:18 来源:今日热点

函数指针是指向函数的指针变量。函数指针可以像一般函数一样,用于调用函数、传递参数。函数指针只能指向具有特定特征的函数。因而所有被同一指针运用的函数必须具有相同的参数和返回类型。类成员函数指针,是C++语言的一类指针数据类型,用于存储一个指定类具有给定的形参列表与返回值类型的成员函数的访问信息。类成员函数指针是一类指针数据类型,C++的语法之一,主要用途是把数据与相关代码结合在一起。这与委托、函子、闭包等概念很像。虽然C++对此支持的并不太好。MFC类体系中,Windows消息传递处理机制是基于CCmdTarget类及其派生类的静态数据成员与静态成员函数。用户所写的类中的Windows消息处理函数必须转换为CCmdTarget::*的成员函数指针类型AFX_PMSG,保存在该用户类的_messageEntries静态数组中。

成员函数指针的语法是什么?

使用::*声明一个成员指针类型,或者定义一个成员指针变量。使用.*或者->*调用类成员函数指针所指向的函数,这时必须绑定(binding)于成员指针所属类的一个实例的地址。由于C++运算符优先级列表中,函数调用运算符()的优先级高于.*与->*,因此成员函数指针所指的函数被调用时,必须把实例对象或实例指针、.*或->*运算符、成员函数指针用括号括起来,如上例所示。C++标准规定,非静态成员函数不是左值,因此非静态成员函数不存在表达式中从函数左值到指针右值的隐式转换,非静态成员函数指针必须通过&运算符显式获得。所以上例中,pmf = X::f; 将编译报错。

关键词: 什么是成员函数指针 成员函数指针的语法是什么 函数指针的定义及用法 函数指针指向类成语函数

热门推荐