zoukankan      html  css  js  c++  java
  • 函数指针形参

    编写函数的声明,令其接受两个int形参并且返回类型也是int;然后声明一个vector对象,令其元素是指向该函数的指针。编写4个函数,分别对两个int值执行加、减、乘除运算。

    #include<iostream>
    #include<string>
    #include<vector>
    using namespace std;
    
    int plus1(int x,int y)
    {
        return x+y;
    }
    int sub(int x ,int y)
    {
        return x-y;
    }
    int multi(int x,int y)
    {
        return x*y;
    }
    int div(int x,int y)
    {
        if(y!=0)
            return x/y;
        else
            return x;
    }
    int use(int x,int y,int (*pf)(int ,int ))
    {
        return (*pf)(x,y);
    }
    int main()
    {
        vector<decltype(plus1)*> vec{plus1,sub,multi,div};
        int num1=use(1,2,vec[0]);
        int num2=use(1,2,vec[1]);
        int num3=use(2,1,vec[2]);
        int num4=use(2,1,vec[3]);
        cout<<num1<<endl;
        cout<<num2<<endl;
        cout<<num3<<endl;
        cout<<num4<<endl;
        return 0;
    }

    或者

    #include<iostream>
    #include<string>
    #include<vector>
    using namespace std;
    
    int plus1(int x,int y)
    {
        return x+y;
    }
    int sub(int x ,int y)
    {
        return x-y;
    }
    int multi(int x,int y)
    {
        return x*y;
    }
    int div(int x,int y)
    {
        if(y!=0)
            return x/y;
        else
            return x;
    }
    int use(int x,int y,int (*pf)(int ,int ))
    {
        return (*pf)(x,y);
    }
    int main()
    {
        typedef int (*pf)(int ,int );
        vector<pf> vec{plus1,sub,multi,div};
        int num1=use(1,2,vec[0]);
        int num2=use(1,2,vec[1]);
        int num3=use(2,1,vec[2]);
        int num4=use(2,1,vec[3]);
        cout<<num1<<endl;
        cout<<num2<<endl;
        cout<<num3<<endl;
        cout<<num4<<endl;
        return 0;
    }

    运行结果如下:

  • 相关阅读:
    C# 代理与事件上(delegate)
    串口编程(SerialPort类)
    java提取QQ邮箱中的邮箱地址
    javascript 调用onclick动作的几种方式。
    python的一些扩展模块,关于Reserving的....
    [ZZ]硬件虚拟化漫谈
    Intel VTx 技术手册 目录
    VTx技术手册杂记
    关于磁盘分析的一些资料
    ReactOS下的Sysutils目录.
  • 原文地址:https://www.cnblogs.com/wuchanming/p/3898154.html
Copyright © 2011-2022 走看看