When to Use Virtual Functions

When to Use Virtual Functions

The decision to use virtual functions is a simple matter. You just need to know when you’d want to override a base method. Take the following code as an example:

class Animal{public:   void MakeSomeNoise()   {      cout 

In this case, I'd want to override MakeSomeNoise(). But what if I didn't? This is what would happen:

Animal * pAnimal = new Bird;pAnimal->MakeSomeNoise();**Output**nothing

The screen would say nothing because for all intents and purposes, C++ only sees an animal. However, if you declared it virtual, it knows to search for the lowest method in the class hierachy. Try it again:

class Bird : public Animal{public:  virtual void MakeSomeNoise()  {     cout MakeSomeNoise();**Output**Tweet


Share the Post: