标题:大家帮我看一个指针数组调用函数的问题吧
只看楼主
小川的行迹
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-3-26
结帖率:0
已结贴  问题点数:10 回复次数:1 
大家帮我看一个指针数组调用函数的问题吧
程序代码:
#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;
}
搜索更多相关主题的帖子: color 
2013-03-26 23:53
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6809
专家分:42393
注 册:2010-12-16
得分:10 
改成下面的就行了
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 编辑 ]

我行我乐
我的博客:
http://blog.yuccn. net
2013-03-27 00:21



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-402037-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.161697 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved