函数指针常用的有三类
1、指向普通函数的函数指针
2、指向类中静态成员函数的函数指针
3、指向类的成员函数的函数指针
一、指向普通函数的函数指针
#include <iostream>
using namespace std;
void Show()
{
cout<<"Show()"<<endl;
}
typedef void(*pFun)(); //定义函数指针类型
int main()
{
pFun p = &Show;
(*p)();
return 0;
}
二、指向类中静态成员函数的函数指针
指向类中静态成员函数的函数指针的声明形式:
#include <iostream>
using namespace std;
class CPeople
{
public:
int num;
public:
CPeople()
{
num = 100;
}
static void Show()
{
cout<<"static void Show()"<<endl;
}
void ShowShow()
{
cout << "ShowShow()" << num << endl;
}
};
typedef void (*PFUN)(); // 普通的函数指针
typedef void (CPeople::*PFUN_A)(); // 成员函数指针
// ::* .* ->* 都是编译器提供的新的操作符 支持成员函数指针的操作
int main()
{
//PFUN fun = &CPeople::Show; // 普通的函数指针 要指向类的函数 那么这个函数一定要static
PFUN_A fun_a; // 成员函数指针的赋值
fun_a = &CPeople::ShowShow;
CPeople pep;
(pep.*fun_a)(); // 成员函数指针的调用
CPeople* p = new CPeople;
(p->*fun_a)();
system("pause");
return 0;
}
原文链接: https://www.cnblogs.com/codergeek/p/3365069.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/107985
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!