请C++高手为小弟指教一二

storejyjs 2002-06-11 04:59:21


近日在学习C++的重载构造函数这一章时,用Turbo C++3.0编译时遇到下面的一个问题:
下面这个程序可以通过;
# include<iostream.h>
class group
{
int a;
double b;
public:
group(int i);
group(double j);
};

void main()
{
group obj1(10);
group obj2(20.50);

cout<<" inside the main fun"<<endl;
}

group::group(int i)
{
a=i;
cout<<"a is:"<<i<<endl
<<"inside group(int)."<<endl;
}

group::group(double i)
{
b=i;
cout<<" b is:"<<b<<endl
<<" inside group(float)"<<endl;
}


而把这个程序中double全部改为float类型后,却给出了如下报错信息:
Error:Ambiguity between 'group::group(int)' and 'group::group(float)
Warring:'obj2' is assigned a value that is never used

至今百思不得其解,盼高手指教一二。



...全文
34 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
villastoner 2002-06-11
  • 打赏
  • 举报
回复
9494

我的分很少,所以我很少发帖
coldcrane 2002-06-11
  • 打赏
  • 举报
回复
高手谈不上,分也无所谓!
storejyjs 2002-06-11
  • 打赏
  • 举报
回复
真是遇到高手了,可是只有区区1分, 不好意思!
coldcrane 2002-06-11
  • 打赏
  • 举报
回复
group obj2((float)20.50);
storejyjs 2002-06-11
  • 打赏
  • 举报
回复
茅塞顿开,若我非要用float,但又不编译错应怎么办?
coldcrane 2002-06-11
  • 打赏
  • 举报
回复
呵呵,其实很简单,系统默认20.50为double类型,
平时大家都没怎么注意罢了!

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧