请诸位看一下为什么会这样!
exc_mean.hpp
#include
using namespace std;
class bad_hmean
{
private:
double v1;
double v2;
public:
bad_hmean(int a=0,int b=0):v1(a),v2(b){}
void mesg();
};
inline void bad_hmean::mesg()
{
cout<
<
}
class bad_gmean
{
public:
double v1;
double v2;
bad_gmean(double a=0,double b=0):v1(a),v2(b){}
const char* mesg();
};
inline const char* bad_gmean::mesg()
{
return "gmean () srguments should be >0 \n";
}
error4.cpp
#include
#include
#include"exc_mean.hpp"
using namespace std;
double hmean(double a,double b);
double gmean(double a,double b);
int main()
{
double x,y,z;
cout<
while(cin>>x>>y)
{
try
{
z=hmean(x,y);
cout<
cout<
cout< : ";
}
catch(bad_hmean &bh)
{
bh.mesg();
cout<
continue;
}
catch(bad_gmean &bg)
{
cout<
cout<
cout<
break;
}
}
cout<
return 0;
}
double hmean(double a,double b)
{
if(a==-b)
//原句如下,编译运行没问题
//将此句替换成右边的两句,编译错误 // bad_hmean A=bad_hmean(a,b);
throw bad_hmean(a,b); //throw A;
return 2.0*a*b/(a+b);
}
double gmean(double a, double b)
{
if(a<0||b<0)
throw bad_gmean(a,b);
/* bad_gmean B=bad_gmean(a,b);//
throw B;*/
return sqrt(a*b);
}
报错如下:
error4.cpp:50:11: error: use of undeclared identifier “A”
throw A;
^
error4.cpp:57:11: error: use of undeclared identifier “B”
throw B;
^
2 errors generated.
怎么还说使用未声明的标示符 A和B
本人不是已经创建了A B这两个对象了吗?
到底怎么回事?
求指导