读书人

帮小弟我修改一下、下面的程序

发布时间: 2012-03-02 14:40:29 作者: rapoo

帮我修改一下、下面的程序
#include <iostream>
void cal (double ,double , double (*pt)(double ,double ));
double add (double , double );
using namespace std;
int main()
{
double n , m;
cout < < "Enter n : ";
cin > > n;
cout < < "Enter m : ";
cin > > m;
cal(n,m,add);
return 0;
}


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

void cal (double x ,double y , double (*pt)(double ,double ))
{

cout < < "x and y : "
< < (*pt)(x,y) < <endl;


}


要求
在上面这个程序的基础上修改成
创建一个指针数组,其中的指针指向add()样式,并编写一个循环,使用这些指针连续让cal()调用这些函数。 包含3个指针的指针数组方式
double (*pt[3])(double , double , )


请大大们帮我改一下 数组指针就设置为3个吧
谢谢

[解决办法]
typedef double (*FUNCTION)(double ,double );
FUNCTION funs[3] = {add, mul, div};
void cal (double x ,double y , FUNCTION * funs)
提示这么多应该够了。

[解决办法]
typedef double (*Func)(double, double);
请问一下 这个语句什么意思?
是否一定要用这个语句?
===>
定义一个函数类型, 该类函数有两个double参数, 返回值类型是double.
这样定义是为了方便, 容易理解.

比如
void cal (double ,double , Func pt)中pt参数是一个Func类型, 即上面
定义的函数类型double(*)(double, double). 它与
void cal (double ,double , double(*pt)(double,double))是一样的, 不过看起来要
好懂多了。

又比如定义
Func funcArray[numFuncs]定义了一个numFuncs大小的数组, 数组的每个元数都是Func.
它与
double (*FuncArray[numFuncs])(double , double)的意思是一样的, 不过要比它清楚明白得
多.


读书人网 >C++

热点推荐