首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2013-04-07 
大家帮我看一个指针数组调用函数的问题吧#include iostreamusing namespace stddouble add (double x,d

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

#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;
}

热点排行