#include<iostream>
using namespace std;
class geometricobject { //baseclass
public:
virtual void geo( ) {
cout << "Just a geometric object" << endl;
}
};
class rectangle : public geometricobject { //derived class
public:
virtual void geo( ) {
cout << "I'm a rectangle" << endl;
}
};
class circle : public geometricobject { // derived class
public:
virtual void geo( ) {
cout << "I'm a circle" << endl;
}
};
int main( ) {
geometricobject *ptr; //pointer to base class
int which, rerun=1;
while(rerun==1) {
do {
cout << "Enter:\n\t"
<<"1 for geometricobject\n\t"
<<"2 for rectangle\n\t"
<<"3 for circle\n\t"
<<"4 to quit"<<endl;
cin >> which;
} while (which < 1 || which > 4);
switch (which) { //set pointer depending on user choice
case 1:
ptr = new geometricobject;
break;
case 2:
ptr = new rectangle;
break;
case 3:
ptr = new circle;
break;
case 4:
rerun=0;
break;
}
if (rerun==0) break;
ptr -> geo( ); //run-time binding
delete ptr; //don’t leave junk hanging around
}
return 0;
}
Comments