注册 登录
编程论坛 C++教室

异常处理的问题

comebaby 发布于 2006-12-26 01:05, 535 次点击

可以帮我解释一下,下面程序出错的原因吗?


#include<iostream>
#include<limits>
using namespace std;

class Range_error
{
private:
int i;
public:
Range_error(int ii):i(ii){}
int iii() const
{
return i;
}

};

char to_char(int i)
{
if(i<numeric_limits<char>::min()||i>numeric_limits<char>::max())
throw Range_error(i);
return i;
}

void g(int i)
{
try
{
char c=to_char(i);
cout<<c<<"\n";
}
catch(Range_error x)
{
cerr<<x.iii()<<"\n";
}
}

int main()
{
int i;
cin>>i;
g(i);
return 0;
}




F:\VC++6.0编辑器\MSDev98\MyProjects\fght\jtyty.cpp(21) : error C2872: 'range_error' : ambiguous symbol
F:\VC++6.0编辑器\MSDev98\MyProjects\fght\jtyty.cpp(32) : error C2872: 'range_error' : ambiguous symbol

3 回复
#2
shihuijie152006-12-26 04:25
我试了一下好象没问题... 能正常运行!
#3
狐狸尾巴2006-12-26 10:22
运行正常啊。。。
#4
醉生梦死2007-08-27 16:31
没有问题,运行过了
1