Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- using namespace std;
- enum COLOR { Green, Blue, White, Black, Brown };
- class Animal {
- public:
- Animal() : _name("unknown") {
- cout << "constructing Animal object " << _name << endl;
- }
- Animal(string n, COLOR c) {
- _name = n;
- cout << "constructing Animal with parameters object " << endl;
- cout << "String: " << n << " Color: " << c << endl;
- }
- ~Animal() {
- cout << "destructing Animal object " << _name << endl;
- }
- virtual void speak() const {
- cout << "Animal speaks " << endl;
- }
- virtual void move() const = 0;
- private:
- string _name;
- COLOR _color;
- };
- class Mammal :public Animal {
- public:
- Mammal() {
- cout << "constructing default Mammal object " << endl;
- }
- Mammal(string n, COLOR c) {
- name = n;
- c1 = c;
- cout << "constructing Mammal with parameter object " << endl;
- }
- void eat() const {
- cout << "Mammal eat " << endl;
- }
- ~Mammal() {
- cout << "destructing Mammal object " << name << endl;
- }
- virtual void move() const {
- cout << "move() implemented" << endl;
- }
- private:
- string name;
- COLOR c1;
- };
- class Dog :public Mammal {
- public:
- Dog() {
- cout << "constructing default Dog object " << endl;
- }
- Dog(string n, COLOR c, string own) {
- name = n;
- c1 = c;
- owner = own;
- cout << "constructing Dog with parameter object " << endl;
- Mammal(n, c);
- }
- ~Dog() {
- cout << "destructing Dog object " << name << endl;
- }
- void speak() const {
- cout << "Woof" << endl;
- }
- private:
- string owner;
- string name;
- COLOR c1;
- };
- int main() {
- Animal *animalPtr = new Dog("Lassie", White, "Andy");
- animalPtr->speak();
- system("PAUSE");
- animalPtr->move();
- system("PAUSE");
- Dog dogi("Lassie", White, "Andy");
- Mammal *aniPtr = &dogi;
- Mammal &aniRef = dogi;
- Mammal aniVal = dogi;
- aniPtr->speak();
- system("PAUSE");
- aniRef.speak();
- system("PAUSE");
- aniVal.speak();
- system("PAUSE");
- delete animalPtr, dogi;
- cout << "Program exiting ... " << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement