标题:函数的重载与带默认值得函数一起使用时,有可能引起二义性
只看楼主
zjdxsunyan
Rank: 1
等 级:新手上路
帖 子:30
专家分:5
注 册:2011-4-10
结帖率:85.71%
已结贴  问题点数:15 回复次数:6 
函数的重载与带默认值得函数一起使用时,有可能引起二义性
如下两个函数:
void Drawcircle(int r=0,int x=0,int y=0);
void Drawcircle(int r);
这样的重载为什么不行。
搜索更多相关主题的帖子: void 
2011-04-12 13:17
lwsfyts
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:39
专家分:132
注 册:2011-4-3
得分:8 
怎么不行哈.你要是声明的话就:
void Drawcircle(int r=0,int x=0,int y=0){}
void Drawcircle(int r){}
或者声明为abstract
2011-04-12 13:54
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
lwsfyts
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:39
专家分:132
注 册:2011-4-3
得分:0 
Drawcicle(20)调用第2个...
2011-04-12 14:13
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
Kiss_零
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:164
专家分:125
注 册:2008-11-21
得分:8 
呵呵,兰州你是来炫耀你的C++技术的吗?或者你所谓的测试对这个论坛有什么实质性帮助么?
2011-04-12 19:48
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.042444 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved