C++ Pure Virtual Function Explained

June 10, 2010

C++

A C++ pure virtual function is a virtual function that you want to force derived classes to override. If a class has any non-overridden pure virtuals, it is an “abstract class” and you can’t create objects of that type.

How many pure virtual functions can an abstract class have?

It is pretty common to be confused as to how many pure virtual functions can an abstract class have – well, the answer is zero; here are few simple examples of pure virtual function in c++.


class AbstractClass {
public:
// declare a pure virtual function:
// this class is now abstract
virtual void f(int) = 0;
};

class StillAbstract : public AbstractClass {
// does not override f(int),
// so this class is still abstract
};

class Concrete : public StillAbstract {
public:
// finally overrides f(int),
// so this class is concrete
void f(int) { /*…*/ }
};

AbstractClass a; // error, abstract class
StillAbstract b; // error, abstract class
Concrete c; // ok, concrete class

Subscribe

Subscribe to our e-mail newsletter to receive updates.

No comments yet.

Leave a Reply