devxlogo

Pure Virtual Functions Declared as Private in C++ Classes

Pure Virtual Functions Declared as Private in C++ Classes

The following code may seem strange at first sight:

class Base{private:   virtual void f() = 0;};

How can a pure virtual function be private? Will the derived class be able to override it? Actually, it’s possible for pure virtual functions to have any access modifier: private, protected, or public. Moreover, you can also change their access levels when they’re overridden in a derived class:

class Derived : public Base{public:   void f()   {      std::cout <

devx-admin

Share the Post: