Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Home » Tip Bank » C++
Language: C++
Expertise: Beginner
Jul 18, 1997



Building the Right Environment to Support AI, Machine Learning and Deep Learning

What is pure virtual function?

Can you explain and give me examples of pure virtual function? What is the difference between pure virtual function and virtual function?

A pure virtual function is a virtual member function of a class that has no implementation. When writing classes from which people will inherit, it is important to stress that the derived classes must define certain virtual functions.

Let's consider a class called Shape and derived classes Square and Circle. We want both derived classes to provide a printing routine.

struct Shape 
   virtual void print () = 0; // makes it pure virtual

struct Square : Shape
   void print ();

void Square::print ()
  // define the fn

struct Circle
//.. other stuff

void foo ()
  Square s ;
  s.print () ; // OK...
  Circle c; // error .. did not define pure virtual fn
In this case the compiler will not allow us to make an instance of the Circle class because it did not override the pure virtual function print ();.

Some things to remember:

  1. Pure virtual functions must be overriden by the derived classes.
  2. A class with at least one pure virtual function — either its own (like Shape) or inherited and not overriden (like circle) — cannot be instantiated. Such classes are called Abstract Base Classes.
DevX Pro
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date