编程论坛
注册
登录
编程论坛
→
C++教室
C++新手关于默认参数和函数重载的问题
心手2012
发布于 2012-03-19 22:08, 799 次点击
C++中默认参数的效果如何通过函数重载达到?最好能举例说明。
8 回复
#2
pangding
2012-03-19 22:58
默认参数了就不能重载了,要不然有歧义。
比如,如果有了
void f(int a, int b = 0)
就不能
void f(int a)
了。
否则
f(5)
就不知道到底是以默认参数调用 f(5, 0) 还是调用重载的 f(5)。
#3
pangding
2012-03-19 23:00
哦,你是说怎么重载达到默认参数的效果?
那还不容易:
先定义:
int
f(
int
a,
int
b)
再重载:
int
f(
int
a)
{
return
f(a,
0
);
}
#4
迷上编程
2012-03-20 00:01
这个我刚刚在学,体会不太深!!
#5
心手2012
2012-03-20 10:13
回复 2楼 pangding
哦 大致意思有点懂了,但是能给点完整的代码吗?你写的有点看不太懂,像返回值那还有点疑问。
#6
pangding
2012-03-20 12:05
程序代码:
#include
<iostream>
using
namespace
std;
int
add(
int
a,
int
b)
{
return
a+b;
}
int
add(
int
a)
{
return
add(a,
0
);
}
int
add2(
int
a,
int
b =
0
)
{
return
a+b;
}
int
main()
{
cout
<<
"
1+1=
"
<< add(
1
,
1
) << endl;
cout
<<
"
1+0=
"
<< add(
1
) << endl;
cout
<<
"
1+1=
"
<< add2(
1
,
1
) << endl;
cout
<<
"
1+0=
"
<< add2(
1
) << endl;
return
0
;
}
#7
心手2012
2012-03-20 17:21
回复 6楼 pangding
感激不尽。
#8
narutosusdo
2012-03-20 22:55
回复 2楼 pangding
难道通过参数个数不能判断调用哪个吗?
#9
pangding
2012-03-21 23:28
回复 8楼 narutosusdo
怎么判断?
1