home *** CD-ROM | disk | FTP | other *** search
- #include <stdio.h>
-
- class animal {
- public:
- void identify() { printf("%s\n", "animal"); }
- };
-
- class mammal : public animal {
- public:
- void identify() { printf("%s\n", "mammal"); }
- };
-
- class bird : public animal {
- public:
- void identify() { printf("%s\n", "bird"); }
- };
-
- class dog : public mammal {
- public:
- void identify() { printf("%s\n", "dog"); }
- };
-
- class eagle : public bird {
- public:
- void identify() { printf("%s\n", "eagle"); }
- };
-
- void print1(void), print2(void), print3(void);
-
- main()
- {
- print1();
- print2();
- print3();
- }
-
- void print1()
- {
- animal *ap = new animal; ap->identify();
- mammal *mp = new mammal; mp->identify();
- bird *bp = new bird; bp->identify();
- dog *dp = new dog; dp->identify();
- eagle *pp = new eagle; pp->identify();
-
- printf("\n");
- }
-
- void print2()
- {
- animal *ap = new animal;
- ap->identify();
-
- ((mammal *) ap)->identify();
- mammal *mp = (mammal *) ap;
-
- mp->identify();
-
- printf("\n");
- }
-
- void print3()
- {
- animal a, *ap = &a;
- mammal m;
-
- ap->identify();
-
- ap = &m;
- ap->identify();
-
- printf("\n");
- }
-
- /* output:
-
- animal
- mammal
- bird
- dog
- eagle
-
- animal
- mammal
- mammal
-
- animal
- animal
-
- */