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 << "Overloaded public f() in Derived class
";   }};
Share the Post:
Share on facebook
Share on twitter
Share on linkedin

Overview

Recent Articles: