使用typedef简化函数指针的声明
#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;}
typedef void (*p)(float&,float&);
void print(p vp,float&x,float&y)//用指針p聲明出來一個vp
{
?cout<<"執行函數前:"<<endl;
?cout<<"x:"<<x<<"/ty:"<<y<<endl;
?vp(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);
?p vp;
?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':vp=square;break;
??case '2':vp=cube;break;
??case '3':vp=Swap;break;
??default:vp=0;
??}
??if (quit==true){break;}
??if (vp==0){cout<<"請輸入一個從0到3之間的數字!"<<endl;i=i-1;continue;}
??print(vp,a,b);
?}
?return 0;
}
總結
以上是生活随笔為你收集整理的使用typedef简化函数指针的声明的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 函数指针也可作为函数的参数
- 下一篇: char型字符串