Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- class Animal {
- public:
- Animal(const char * name) : name(name) {};
- virtual ~Animal() {}
- virtual void Pet() = 0;
- private:
- const char * name;
- };
- class Dog : public Animal {
- public:
- Dog(const char * name) : Animal(name) {};
- virtual ~Dog() {}
- virtual void Pet() {
- std::cout << "Petted a dog!" << std::endl;
- }
- private:
- };
- class Cat : public Animal {
- public:
- Cat(const char * name) : Animal(name) {};
- virtual ~Cat() {}
- virtual void Pet(){
- std::cout << "Petted a cat!" << std::endl;
- }
- };
- class Snoopy : public Dog {
- public:
- Snoopy() : Dog("Snoopy") {};
- virtual ~Snoopy() {}
- virtual void Pet() {
- std::cout << "Petted snoopy!" << std::endl;
- }
- };
- class Garfield : public Cat {
- public:
- Garfield() : Cat("Garfield") {};
- virtual ~Garfield() {}
- virtual void Pet() {
- std::cout << "Petted a garfield!" << std::endl;
- }
- };
- int main() {
- Cat* garfield = new Garfield();
- garfield->Pet();
- delete garfield;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement