异常处理的问题
可以帮我解释一下,下面程序出错的原因吗?
#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