标题:函数的重载与带默认值得函数一起使用时,有可能引起二义性
取消只看楼主
zjdxsunyan
Rank: 1
等 级:新手上路
帖 子:30
专家分:5
注 册:2011-4-10
结帖率:85.71%
已结贴  问题点数:15 回复次数:3 
函数的重载与带默认值得函数一起使用时,有可能引起二义性
如下两个函数:
void Drawcircle(int r=0,int x=0,int y=0);
void Drawcircle(int r);
这样的重载为什么不行。
搜索更多相关主题的帖子: void 
2011-04-12 13:17
zjdxsunyan
Rank: 1
等 级:新手上路
帖 子:30
专家分:5
注 册:2011-4-10
得分:0 
就按照你说的,下面的调用:
Drawcicle(20);
你说调用哪一个。提醒一下,这个调用语句,可能是调用第一个带有默认值的函数哦!不信你把第二个函数去掉,测试如下代码:
#include<iostream>
using namespace std;
void f(int x=1,int y=2,int z=3)
{
    cout<<x<<' '<<y<<' '<<z<<endl;
}
int main()
{
    f(4);
    return 0;
}
2011-04-12 14:05
zjdxsunyan
Rank: 1
等 级:新手上路
帖 子:30
专家分:5
注 册:2011-4-10
得分:0 
#include<iostream>
using namespace std;
void f(int x=1,int y=2,int z=3)
{
    cout<<x<<' '<<y<<' '<<z<<endl;
}
void f(int x)
{
    cout<<x*x<<endl;
}
int main()
{
    f(4);
    return 0;
}
你测试吧!


2011-04-12 14:55
zjdxsunyan
Rank: 1
等 级:新手上路
帖 子:30
专家分:5
注 册:2011-4-10
得分:0 
啊哈,不是啊,我刚学习C++,哪是炫耀。大家不要生气啊!
2011-04-12 20:31



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




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

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