注册 登录
编程论坛 新人交流区

[求助]小弟刚学c++不久,问一个关于默认参数的问题,请高人指点一下

guanqiao 发布于 2007-11-01 11:37, 544 次点击
#include<iostream>
using namespace std;
int max(int,int);
void disp(int n=max(100,200))
{cout<<"The Max is: "<<n<<endl;}
int main()
{ disp(); disp(100); disp(200); return 0;}
int max(int x,int y) {return (x>y?x:y);}
它的显示结果为
The Max is:200
100
200
我想问一下,在main里disp(100)这个是给谁付的值啊?怎么max完是100
6 回复
#2
yanwu15152007-11-03 12:24
好象在递归disp这个函数时,你传进的就是一个值呀,它的参数只有一个,但是调用max时是要用两个参数的,可能是直接把参数给n了吧!所以第一次没有参数时它调用MAX,当你传入一个参数时就吧这个参数给n 了,没有调用MAX ,因为参数不够。结果就输出上面显示的了
#3
tianxia_buaa2007-11-03 12:43
void disp(int n=max(100,200))
这个函数只有一个参数 n ,只是它带有默认的参数,这个默认的参数是函数 :int max(int x,int y) {return (x>y?x:y);}的返回值,max()需要两个参数,默认的是100和200,调用disp()时没有传递参数,所以使用默认的参数,就是
n = max(100,200)的值,disp(100)传递了一个参数n = 100, disp(200)传递的是 n = 200;而disp()只是显示出 n 的值而已
#4
hunterbin2007-11-03 13:12
路过学习下
#5
Naruto19832007-11-03 13:55
学习中
#6
Naruto19832007-11-03 13:58
回复:(guanqiao)[求助]小弟刚学c++不久,问一个关于...
学习中
#7
ryoung2007-11-15 20:53
1