|
|
|
|
|
|
|
LISTING 24.2 POLYMORPHIC EXCEPTIONS |
|
|
|
 |
|
|
|
|
1: #include <iostream.h>
2:
3: const int DefaultSize = 10;
4:
5: // define the exception classes
6: class xBoundary {};
7:
8: class xSize
9: {
10: public:
11: xSize(int size):itsSize(size) {}
12: virtual ~xSize(){}
13: virtual int GetSize() { return itsSize; }
14: virtual void PrintError()
15: { cout << Size error. Received: << itsSize << end1; }
16: protected:
17: int itsSize;
18: };
19:
20: class xTooBig : public xSize
21: {
22: public:
23: xTooBig(int size):xSize(size){}
24: virtual void PrintError()
25: { cout << Too big! Received: ;
26: cout << xSize::itsSize << end1; }
27: };
28:
29: class xTooSmall : public xSize
30: {
31: public:
32: xTooSmall(int size):xSize(size){}
33: virtual void PrintError()
34: { cout << Too small! Received: ;
35: cout << xSize::itsSize << end1; }
36: };
37:
38: class xZero : public xTooSmall
39: {
40: public:
41: xZero(int size):xTooSmall(size){}
42: virtual void PrintError()
43: { cout << Zero!!. Received: ;
44: cout << xSize::itsSize << end1; }
45: };
46:
47: class xNegative : public xSize
48: { |
|
|
|
 |
|
|
|
|
continues |
|
|
|
|
|