CPlusPlusThings/practical_exercises/10_day_practice/day9/exception/10.cpp

44 lines
671 B
C++

// Eg10-11.cpp
#include <iostream>
using namespace std;
const int MAX = 3;
class Full {
int a;
public:
Full(int i) : a(i) {}
int getValue() { return a; }
};
class Empty {};
class Stack {
private:
int s[MAX];
int top;
public:
Stack() { top = -1; }
void push(int a) {
if (top >= MAX - 1)
throw Full(a);
s[++top] = a;
}
int 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);
} catch (Full e) {
cout << "Exception: Stack Full..." << endl;
cout << "The value not push in stack:" << e.getValue() << endl;
}
}