现在的位置: 首页 > 综合 > 正文

函数指针数组

2017年12月27日 ⁄ 综合 ⁄ 共 821字 ⁄ 字号 评论关闭

#include <iostream>
using namespace std;
void (*p[5])(int&,int&);//全局的.
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(float&x,float&y){cout<<"长:"<<x<<"/t宽:"<<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;}
  cout<<"第"<<i+1<<"次执行,到第5次结束"<<endl;
  cout<<"初始值"<<endl;
  print(a,b);
  cout<<"现在调用指针数组p["<<i<<"]所指向的函数..."<<endl;
  p[i](a,b);
  cout<<"运算后"<<endl;
  print(a,b);
 }
 return 0;
}

抱歉!评论已关闭.