注册 登录
编程论坛 C++教室

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

小川的行迹 发布于 2013-03-26 23:53, 425 次点击
程序代码:
#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;
}
1 回复
#2
yuccn2013-03-27 00:21
改成下面的就行了
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)(double,double))//这样定义有错吗?
{
    //double *p[0](double,double)=add;//没有必要这个,直接调用
    //double *p[1](double,double)=subtraction;
    return (*p)(x,y);
}
int main ()
{
    double a,b;
    double (*p[2])(double,double); // 定义两个指针函数

    p[0] = add; // 分别指向add 和subtraction
    p[1] = subtraction;

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

[ 本帖最后由 yuccn 于 2013-3-27 00:23 编辑 ]
1