读书人

大家帮小弟我看一个指针数组调用函数的

发布时间: 2013-04-07 12:50:11 作者: rapoo

大家帮我看一个指针数组调用函数的问题吧

#include <iostream>
using namespace std;
double add (double x,double y)
{
return x+y;
}
double subtraction (double x,double y)
{
return x-y;
}
double calculate ( double x,double y,double (*p[3])(double,double))//这样定义用错误吗
{
double *p[0](double,double)=add;//这里报错了,怎么也改不过来了
double *p[1](double,double)=subtraction;同上
return (*p)(x,y);
}
int main ()
{
double add (double x,double y);
double subtraction (double x,double y);
double calculate ( double x,double y,double (*p[2])(double,double));
double a,b;
cout<<"Please input figure:";
while (cin>>a>>b)
{
for (int i=0;i<2;i++)
{
cout<<calculate (a,b,p[i])<<endl;
}
cout<<"Please input figure:";
}
system("pause");
return 0;
}

[解决办法]
引用:
C/C++ code?123456789101112131415161718192021222324252627282930313233343536373839#include <iostream>using namespace std; double add (double x,double y){ return x+y;}double subtractio……

你的意思应该是输入两个数,然后对这两个数进行用户指定的操作吧(你例子中是加法和减法)。
需要进行的操作是通过函数指针数组参数传入的。在calculate函数中你要进行的只是计算,至于操作是哪些其实应该由外界来指定才是。

#include <iostream>
using namespace std;

double add(double x, double y)
{
return x + y;
}
double subtraction(double x, double y)
{
return x - y;
}

void calculate(double x, double y, double (*p[2])(double, double))
{
for (int i = 0; i < 2; ++i)
{
cout << p[i](x, y) << endl;
}
}

int main()
{
double (*p[2])(double, double) = { add, subtraction};
double a, b;
cout << "Please input figure:";
while (cin >> a >> b)
{
calculate(a, b, p);
cout << "Please input figure:";
}
system("pause");
return 0;
}

读书人网 >C++

热点推荐