#include <iostream>
#include <string>
using namespace std;
// 异常基类
class BaseException{
public:
virtual void printError() = 0; // 纯虚函数
};
// 空指针的异常
class NullPointerException : public BaseException{
public:
virtual void printError(){
cout << "空指针异常" << endl;
}
};
// 地址越界异常
class OutOfRangeException : public BaseException{
public:
virtual void printError(){
cout << "地址越界异常" << endl;
}
};
void doThrow(){
throw NullPointerException();
}
int main()
{
try{
doThrow();
}
// 父类的指针或引用指向子类对象
// BaseException &e = NullPointerException();
catch(BaseException &e){
e.printError();
}
return 0;
}
