Login | Register   
RSS Feed
Download our iPhone app
Browse DevX
Sign up for e-mail newsletters from DevX

By submitting your information, you agree that devx.com may send you DevX offers via email, phone and text message, as well as email offers about other products and services that DevX believes may be of interest to you. DevX will process your information in accordance with the Quinstreet Privacy Policy.

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