Using virtual methods : derived class « Class « C++ Tutorial






#include <iostream>
 
 class Animal
 {
 public:
     Animal():itsAge(1) { std::cout << "Animal constructor...\n"; }
     ~Animal() { std::cout << "Animal destructor...\n"; }
     void Move() const { std::cout << "Animal move one step\n"; }
     virtual void Speak() const { std::cout << "Animal speak!\n"; }
 
 protected:
     int itsAge;
 };
 
 class Dog : public Animal
 {
 public:
     Dog() { std::cout << "Dog constructor...\n"; }
     ~Dog() { std::cout << "Dog destructor...\n"; }
     void WagTail() { std::cout << "Wagging Tail...\n"; }
     void Speak()const { std::cout << "Woof!\n"; }
     void Move()const { std::cout << "Dog moves 5 steps...\n"; }
 };
 
 int main()
 {
     Animal *pDog = new Dog;
     pDog->Move();
     pDog->Speak();
     return 0;
 }
Animal constructor...
Dog constructor...
Animal move one step
Woof!








9.18.derived class
9.18.1.Add a constructor to derived class
9.18.2.Call base's constructor and destructor from derived class
9.18.3.Access member of base and use member of derived class
9.18.4.Overriding a base class method in a derived class
9.18.5.Hiding methods
9.18.6.Calling base method from overridden method.
9.18.7.Using virtual methods
9.18.8.Inherit base class twice
9.18.9.dynamic_cast: Cast from Derived * to Base *