< previous page page_293 next page >

Page 293
LISTING 18.5 continued
d5ef64f4d3250b96ba5c07ca5bbc2f56.gif
73:       Square(int len);
74:       Square(int len, int width);
75:       ~Square(){}
76:       long GetPerim() {return 4 * GetLength();}
77:    };
78:
79:    Square::Square(int len):
80:       Rectangle(len,len)
81:    {}
82:
83:    Square::Square(int len, int width):
84:       Rectangle(len,width)
85:
86:    {
87:       if (GetLength() != GetWidth())
88:          cout << Error, not a square a Rectangle??\n;
89:    }
90:
91:    int main()
92:    {
93:       int choice;
94:       bool fQuit = false;
95:       Shape * sp;
96:
97:       while (1)
98:      {
99:         cout << (1)Circle (2)Rectangle (3)Square (0)Quit: ;
100:         cin >> choice;
101:
102:         switch (choice)
103:         {
104:            case 1: sp = new Circle(5);
105:            break;
106:            case 2: sp = new Rectangle(4,6);
107:            break;
108:            case 3: sp = new Square (5);
109:            break;
110:            default: fQuit = true;
111:            break;
112:         }
113:         if (fQuit)
114:            break;
115:
116:         sp->Draw();
117:         cout << \n;
118:      }
119:      return 0;
120:    }

 
< previous page page_293 next page >

If you like this book, buy it!