devxlogo

A Virtual Function in a Base Class

A Virtual Function in a Base Class

If a virtual function in a base class has a default argument that is overridden in the derived class, at run time the value in the base class is always taken. For example:

class Base{    public:            virtual void func(int n = 0);};class Derived{        public:         void func(int n=5);};

In the above code, if the func is overridden.Base* b = new Derived(); b->func();//, it takes o as the default value instead of 5.

devx-admin

Share the Post: