函数指针也可作为函数的参数
#include <iostream>
using namespace std;
void square(float&x,float&y){x=x*x;y=y*y;}
void cube(float&x,float&y){x=x*x*x;y=y*y*y;}
void print(void (*p)(float&,float&),float&x,float&y)
{
?cout<<"執行函數前:"<<endl;
?cout<<"x:"<<x<<"/ty:"<<y<<endl;
?p(x,y);
?cout<<"執行函數后:"<<endl;
?cout<<"x:"<<x<<"/ty:"<<y<<endl;
}
void Swap(float&x,float&y){int z;z=x;x=y;y=z;}
int main()
{
?float a=2,b=3;
?char choice='0';
?int i;
?void (*p[5])(float&x,float&y);
?for (i=0;i<5;i++)
?{
??cout<<"[0]退出[1]平方[2]立方[3]交換x和y的值:";
??cin>>choice;
??bool quit=false;
??switch (choice)
??{
??case '0':quit=true;break;
??case '1':p[i]=square;break;
??case '2':p[i]=cube;break;
??case '3':p[i]=Swap;break;
??default:p[i]=0;
??}
??if (quit==true){break;}
??if (p[i]==0){cout<<"請輸入一個從0到3之間的數字!"<<endl;i=i-1;continue;}
??print(p[i],a,b);
?}
?return 0;
}
總結
以上是生活随笔為你收集整理的函数指针也可作为函数的参数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 私有静态成员变量
- 下一篇: 使用typedef简化函数指针的声明