
C++实现包含加减乘除四个函数的函数指针数组
C++编程作业,要求实现包含加减乘除四个函数的函数指针数组.函数指针的类型为int(*)(int,int)pfunc_array[4]={f1,f2,f3,f4};这一行...
C++编程作业,要求实现包含加减乘除四个函数的函数指针数组.函数指针的类型为int (*)(int , int)
pfunc_array[4] = {f1,f2,f3,f4};这一行报错,expected constructor, destructor, or type conversion before '=' token
是因为数组没有声明或者数组类型的问题嘛?要如何修改?还是别的问题?多谢多谢!
以下是我的代码:
#include <iostream>
#include<stdio.h>
int f0(int x,int y){return x+y;}
int f1(int x,int y){return x-y;}
int f2(int x,int y){return x*y;}
int f3(int x,int y){return x/y;}
int (*pfunc_array[4])(int,int);
pfunc_array[4] = {f0,f1,f2,f3};
int main()
{
int a,b;
std::cin>>a>>b;
for(int i = 0; i < 4; ++i)
{
std::cout<<pfunc_array[i](a,b)<<std::endl;
}
return 0;
} 展开
pfunc_array[4] = {f1,f2,f3,f4};这一行报错,expected constructor, destructor, or type conversion before '=' token
是因为数组没有声明或者数组类型的问题嘛?要如何修改?还是别的问题?多谢多谢!
以下是我的代码:
#include <iostream>
#include<stdio.h>
int f0(int x,int y){return x+y;}
int f1(int x,int y){return x-y;}
int f2(int x,int y){return x*y;}
int f3(int x,int y){return x/y;}
int (*pfunc_array[4])(int,int);
pfunc_array[4] = {f0,f1,f2,f3};
int main()
{
int a,b;
std::cin>>a>>b;
for(int i = 0; i < 4; ++i)
{
std::cout<<pfunc_array[i](a,b)<<std::endl;
}
return 0;
} 展开
1个回答
推荐于2016-05-29
展开全部
一种方法:
#include <iostream>
// #include<stdio.h>
int f0(int x,int y){return x+y;}
int f1(int x,int y){return x-y;}
int f2(int x,int y){return x*y;}
int f3(int x,int y){return x/y;}
// int (*pfunc_array[4])(int,int);
// pfunc_array[4] = {f0,f1,f2,f3};
// 用关键字typedef定义 函数指针类型 pType
typedef int (*pType)(int,int);
// 声明一维数组,元素初始化为四个 pType函数指针
pType pfunc_array[4] = {f0,f1,f2,f3};
int main()
{
int a,b;
std::cin>>a>>b;
for(int i = 0; i < 4; ++i)
{
std::cout<<pfunc_array[i](a,b)<<std::endl;
}
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询