zoukankan      html  css  js  c++  java
  • C++之函数指针

    函数指针常用的有三类

    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;
    }
  • 相关阅读:
    树上点对统计poj1741(树的点分治)
    hdu5115(区间dp)
    bestcoder Round#52 1001(最短路+状压dp)
    lightoj1038(期望dp)
    模线性方程组
    hdu2089 数位dp
    poj2955括号匹配 区间DP
    poj1417 带权并查集 + 背包 + 记录路径
    poj1984 带权并查集(向量处理)
    zoj3261 并查集离线处理
  • 原文地址:https://www.cnblogs.com/codergeek/p/3365069.html
Copyright © 2011-2022 走看看