看看这段异常代码,在线等?
//a.h 中
#include <iostream>
using namespace std;
class animal
{
public:
animal();
animal(int _age);
void cry();
void virtual run();
private:
int _name;
int _age;
};
animal::animal()
{
cout<<"this is a anmiam"<<endl;
}
animal::animal(int _age)
{
cout<<"the animal age is "<<_age<<endl;
if(_age>60)
throw animal(_age);
}
void animal::cry()
{
cout<<"zhe animal is cry"<<endl;
}
void animal::run()
{
cout<<"the animal is run()"<<endl;
}
class dog : public animal
{
public:
dog();
void cry();
void virtual run();
private:
int zl;
};
dog::dog()
{
cout<<"this is a dog!"<<endl;
}
void dog::cry()
{
cout<<"zhe dog is cry"<<endl;
}
void dog::run()
{
cout<<"zhe dong is run"<<endl;
}
// a.cpp 中
#include <iostream>
#include <string>
#include "a.h"
using namespace std;
void main()
{
try
{
animal an(90);
}
catch(const animal & a)
{
cout<<"animal is ex"<<endl;
}
catch(const dog & d)
{
cout<<"dog is ex"<<endl;
}
}
为什么 运行后 是个死循环?