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;
    }
  • 相关阅读:
    客户端不能连接MySQL
    Linux 7.x 防火墙&端口
    MYSQL.版本查看-LINUX
    Java之.jdk卸载-Linux
    Redis.之.环境搭建(集群)
    Elasticsearch.安装插件(head)
    Linux安装Nodejs
    Linux.ls 查看常用参数
    Elasticsearch.安装(单节点)
    Andrew NG 机器学习编程作业3 Octave
  • 原文地址:https://www.cnblogs.com/codergeek/p/3365069.html
Copyright © 2011-2022 走看看