//Eg10-10.cpp #include using namespace std; const int MAX=3; class Full{}; //L1 堆栈满时抛出的异常类 class Empty{}; //L2 堆栈空时抛出的异常类 class Stack{ private: int s[MAX]; int top; public: void push(int a); int pop(); Stack(){top=-1;} }; void Stack::push(int a){ if(top>=MAX-1) throw Full(); s[++top]=a; } int Stack::pop(){ if(top<0) throw Empty(); return s[top--]; } int main(){ Stack s; try{ s.push(10); s.push(20); s.push(30); //s.push(40); //L5 将产生栈满异常 cout<<"stack(0)= "<