成员函数指针和指向静态成员函数的指针
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了成员函数指针和指向静态成员函数的指针相关的知识,希望对你有一定的参考价值。
#include <iostream> using namespace std; class Student{ public: Student(const string& name):m_name(name){} void who(void){ cout << m_name << endl; } string m_name; static int s_add(int a,int b){ return a+b; } }; int main(void){ //成员函数指针 void (Student::*pwho)(void) = &Student::who; Student s1("zhnangfei"); Student s2("zhaoyun"); (s1.*pwho)(); Student* ps = &s2; (ps->*pwho)(); //指向静态成员函数的指针 int (*padd)(int,int) = Student::s_add; //int (Student::*padd1)(int,int) = Student::s_add;错误的写法 cout << padd(100,200) << endl; return 0; } 成员函数的指针(即函数指针): 类型 ()(形参类型) = &类名::成员函数名(注意类名前一定要加取地址符&,不然报错) 指向静态成员函数的指针(还是函数指针): 类型 ()(形参类型) = Student::s_add(注意类型前面可以不加&也可以加)
本文出自 “12208412” 博客,请务必保留此出处http://12218412.blog.51cto.com/12208412/1866470
以上是关于成员函数指针和指向静态成员函数的指针的主要内容,如果未能解决你的问题,请参考以下文章
C++|详解类成员指针:数据成员指针和成员函数指针及应用场合
C ++创建指向标头内所有公共静态成员函数的指针数组,然后使用它