Difference Between
versus

Virtual Function vs. Pure Virtual Function: Know the Difference

Hifza Nasir
By Hifza Nasir & Dua Fatima || Published on March 5, 2024
Virtual functions in C++ allow derived classes to override a base class function, while pure virtual functions make a class abstract, requiring derived classes to provide an implementation.
Virtual Function vs. Pure Virtual Function

Key Differences

Virtual functions in C++ are member functions that can be overridden in derived classes, enabling polymorphism. This allows for dynamic dispatch, where the function called is determined at runtime based on the object's type. Pure virtual functions, declared with "= 0" in their declaration, serve to create abstract classes. These classes cannot be instantiated directly and compel derived classes to implement the pure virtual function, ensuring a specific interface is followed.
Dua Fatima
Dua Fatima
Mar 05, 2024
By defining a virtual function in a base class, you enable functionality that can be extended or modified in derived classes. This provides flexibility in how classes interact, making code more modular and reusable. Conversely, a pure virtual function does not provide a default implementation, pushing the responsibility of defining the function's behavior onto the derived class, which can ensure that all derived classes adhere to a uniform interface.
Hifza Nasir
Hifza Nasir
Mar 05, 2024
Virtual functions are used when a base class has a default implementation that might be sufficient for some derived classes. This allows derived classes to use the base class implementation or override it with their own. In contrast, pure virtual functions are used when there is no meaningful default behavior that the base class can provide, making it essential for the derived class to provide its own implementation.
Dua Fatima
Dua Fatima
Mar 05, 2024
The concept of virtual functions enables C++ to support runtime polymorphism, an essential feature of object-oriented programming. This allows for more flexible and dynamic code structures. Pure virtual functions, on the other hand, are a key component in designing abstract base classes and interfaces, guiding the architectural structure of complex systems by mandating certain behaviors in the derived classes.
Hifza Nasir
Hifza Nasir
Mar 05, 2024
Virtual and pure virtual functions play crucial roles in the implementation of polymorphism and inheritance in C++. While virtual functions provide a mechanism for dynamic behavior change, pure virtual functions enforce a contract for derived classes, highlighting the blend of flexibility and structure in object-oriented design.
Dua Fatima
Dua Fatima
Mar 05, 2024
ADVERTISEMENT

Comparison Chart

Definition

A function that can be overridden by derived classes.
A function that must be implemented by derived classes.
Hifza Nasir
Hifza Nasir
Mar 05, 2024

Syntax

Virtual void functionName();
Virtual void functionName() = 0;
Dua Fatima
Dua Fatima
Mar 05, 2024

Purpose

To allow derived classes to modify or extend base class functionality.
To make a class abstract and ensure that derived classes provide an implementation.
Hifza Nasir
Hifza Nasir
Mar 05, 2024

Instantiation

Classes with virtual functions can be instantiated.
Classes with pure virtual functions cannot be instantiated.
Dua Fatima
Dua Fatima
Mar 05, 2024

Usage

When a default implementation may be overridden.
When there is no meaningful default implementation.
Hifza Nasir
Hifza Nasir
Mar 05, 2024
ADVERTISEMENT

Virtual Function and Pure Virtual Function Definitions

Virtual Function

A virtual function allows derived classes to override it.
Virtual void display() { cout << Base class display; }.
Hifza Nasir
Hifza Nasir
Feb 26, 2024

Pure Virtual Function

Facilitates strict polymorphism.
Enforces behavior uniformity across derived classes.
Shumaila Saeed
Shumaila Saeed
Feb 26, 2024

Virtual Function

It supports runtime polymorphism.
Base* ptr = new Derived(); ptr->display().
Dua Fatima
Dua Fatima
Feb 26, 2024

Pure Virtual Function

It makes the class abstract.
Class with pure virtual function cannot be instantiated.
Hifza Nasir
Hifza Nasir
Feb 26, 2024

Virtual Function

Provides a default implementation that can be used or replaced.
Derived class did not override display, Base's version is used.
Dua Fatima
Dua Fatima
Feb 26, 2024
ADVERTISEMENT

Pure Virtual Function

Ensures derived classes follow a specific interface.
Derived class must implement the display function.
Hifza Nasir
Hifza Nasir
Feb 26, 2024

Virtual Function

Enables dynamic dispatch in C++.
Virtual function call is resolved at runtime.
Hifza Nasir
Hifza Nasir
Feb 26, 2024

Pure Virtual Function

Used in abstract base classes and interfaces.
Defines a contract for derived classes.
Dua Fatima
Dua Fatima
Feb 26, 2024

Virtual Function

Used when base class provides a common interface.
All derived classes can use or modify the display function.
Dua Fatima
Dua Fatima
Feb 26, 2024

Pure Virtual Function

A pure virtual function requires an override in derived classes.
Virtual void display() = 0.
Dua Fatima
Dua Fatima
Feb 26, 2024

Repeatedly Asked Queries

What is a virtual function in C++?

A virtual function is a member function in a base class that can be overridden by derived classes to provide specialized behavior.
Dua Fatima
Dua Fatima
Mar 05, 2024

What is the role of pure virtual functions?

Pure virtual functions define an interface that all derived classes must implement, making the base class abstract.
Hifza Nasir
Hifza Nasir
Mar 05, 2024

Can a virtual function have an implementation?

Yes, a virtual function can have an implementation in the base class, providing a default behavior that derived classes can override.
Dua Fatima
Dua Fatima
Mar 05, 2024

What happens if a derived class doesn't override a pure virtual function?

If a derived class doesn't override a pure virtual function, it remains abstract and cannot be instantiated.
Dua Fatima
Dua Fatima
Mar 05, 2024

Why might a class have both virtual and pure virtual functions?

A class might have both to provide some default behaviors while also requiring certain functions to be implemented by derived classes, creating a mix of flexibility and strict interface adherence.
Dua Fatima
Dua Fatima
Mar 05, 2024

What makes a function pure virtual?

A function becomes pure virtual when it is declared with "= 0" in its declaration, indicating it must be implemented by derived classes.
Hifza Nasir
Hifza Nasir
Mar 05, 2024

What is an abstract class in C++?

An abstract class is a class that cannot be instantiated and typically contains one or more pure virtual functions, serving as a base for other classes.
Shumaila Saeed
Shumaila Saeed
Mar 05, 2024

Can a class with a pure virtual function be instantiated?

No, classes with pure virtual functions are considered abstract and cannot be instantiated.
Hifza Nasir
Hifza Nasir
Mar 05, 2024

Why use virtual functions?

Virtual functions allow for dynamic polymorphism, enabling runtime selection of function implementations based on the object type.
Shumaila Saeed
Shumaila Saeed
Mar 05, 2024

How do virtual functions support polymorphism?

Virtual functions support polymorphism by allowing derived classes to override base class functions, enabling dynamic behavior based on the object's actual type.
Dua Fatima
Dua Fatima
Mar 05, 2024

Is it possible to have a pure virtual destructor?

Yes, a destructor can be pure virtual, requiring a derived class to provide an implementation, though the base class must also provide a definition.
Hifza Nasir
Hifza Nasir
Mar 05, 2024

Can a class be derived from an abstract class without implementing its pure virtual functions?

Yes, but the derived class will also be abstract and cannot be instantiated until it provides implementations for all inherited pure virtual functions.
Dua Fatima
Dua Fatima
Mar 05, 2024

How do constructors work with virtual and pure virtual functions?

Constructors cannot be virtual or pure virtual. They are used to initialize objects and do not participate in polymorphism.
Hifza Nasir
Hifza Nasir
Mar 05, 2024

Can a pure virtual function have a body?

Yes, a pure virtual function can have a body defined outside the class declaration, though it's uncommon.
Hifza Nasir
Hifza Nasir
Mar 05, 2024

How do virtual and pure virtual functions differ in use?

Virtual functions are used when there's a default behavior that might be sufficient or needs to be extended, while pure virtual functions are used to enforce a contract for derived classes to implement specific behavior.
Hifza Nasir
Hifza Nasir
Mar 05, 2024

Share this page

Link for your blog / website
HTML
Link to share via messenger
About Author
Hifza Nasir
Written by
Hifza Nasir
Dua Fatima
Co-written by
Dua Fatima

Popular Comparisons

Trending Comparisons

Hydroscopic vs. HygroscopicHydroscopic vs. Hygroscopic
Shumaila SaeedShumaila Saeed
February 14, 2024
Hydroscopic is a common misnomer, often incorrectly used in place of hygroscopic. Hygroscopic refers to substances that absorb moisture from the air.
Pulley vs. SheavePulley vs. Sheave
Hifza NasirHifza Nasir
April 4, 2024
A pulley is a wheel on an axle designed to support movement and change of direction of a taut cable, while a sheave is the wheel part of a pulley system that specifically interacts with the cable.
Guilty vs. LiableGuilty vs. Liable
Shumaila SaeedShumaila Saeed
January 7, 2024
Being guilty implies responsibility for committing a crime or wrongdoing, while being liable denotes legal responsibility or obligation, often in a civil context.
Natural Rubber vs. Synthetic RubberNatural Rubber vs. Synthetic Rubber
Hifza NasirHifza Nasir
March 8, 2024
Natural rubber, derived from the latex of rubber trees, offers elasticity and resistance to abrasion, while synthetic rubber, produced from petroleum byproducts, provides enhanced chemical and temperature resistance.
Polo Ralph Lauren vs. US Polo AssnPolo Ralph Lauren vs. US Polo Assn
Shumaila SaeedShumaila Saeed
January 21, 2024
Polo Ralph Lauren is a premium fashion brand known for luxury clothing, while US Polo Assn is the official brand of the United States Polo Association, focused on affordable casual wear.
Inox vs. Stainless SteelInox vs. Stainless Steel
Shumaila SaeedShumaila Saeed
January 10, 2024
Inox is a synonym for stainless steel, used mainly in Europe, while stainless steel is a corrosion-resistant alloy containing chromium.
Pycharm Community vs. Pycharm ProPycharm Community vs. Pycharm Pro
Shumaila SaeedShumaila Saeed
February 4, 2024
PyCharm Community is a free, open-source IDE for Python development, while PyCharm Pro is a paid version with additional advanced features like web development support and database tools.
Coke vs. PepsiCoke vs. Pepsi
Shumaila SaeedShumaila Saeed
January 12, 2024
Coke and Pepsi are iconic cola beverages with distinct flavors; Coke has a sharper, vanilla-tinged taste, while Pepsi is sweeter with a citrusy flavor.
Broadsheet vs. TabloidBroadsheet vs. Tabloid
Shumaila SaeedShumaila Saeed
November 2, 2024
Broadsheet is a large-format newspaper focusing on serious content; Tabloid is a smaller, sensational news-focused paper.
Catholic Bible vs. NIV BibleCatholic Bible vs. NIV Bible
Shumaila SaeedShumaila Saeed
February 11, 2024
The Catholic Bible includes additional books in the Old Testament not found in the NIV Bible; the NIV is a modern English translation.
HAWB vs. MAWBHAWB vs. MAWB
Shumaila SaeedShumaila Saeed
November 2, 2024
HAWB (House Air Waybill) is issued by freight forwarders for individual shipments, while MAWB (Master Air Waybill) is issued by airlines for multiple shipments consolidated by those forwarders.
Stuck vs. StockStuck vs. Stock
Shumaila SaeedShumaila Saeed
June 18, 2024
"Stuck" refers to being unable to move or progress, while "stock" primarily denotes inventory or shares in a company, highlighting distinct usage contexts.
Michael vs. MichealMichael vs. Micheal
Shumaila SaeedShumaila Saeed
January 31, 2024
"Michael" is a common male name, whereas "Micheal" is often a misspelling or a less common variant.
.380 vs. .38 Special.380 vs. .38 Special
Shumaila SaeedShumaila Saeed
April 20, 2024
The .380 is a short-range pistol cartridge with less recoil, while the .38 Special is a longer, more powerful revolver cartridge suitable for diverse uses.
Ammonium Sulfate vs. UreaAmmonium Sulfate vs. Urea
Shumaila SaeedShumaila Saeed
December 25, 2023
Ammonium Sulfate is an inorganic salt used as a fertilizer, while Urea is an organic compound used in agriculture and industry.
Double Room vs. Twin RoomDouble Room vs. Twin Room
Shumaila SaeedShumaila Saeed
October 16, 2024
A double room features one large bed for two people, focusing on couples or close pairs, while a twin room has two separate single beds, catering to friends or colleagues.
Department vs. DivisionDepartment vs. Division
Shumaila SaeedShumaila Saeed
February 22, 2024
A department is a specialized unit within an organization focusing on a specific function or task, while a division is a larger segment of a company, often based on product lines, customer types, or geographical areas.
Garbanzo Beans vs. Cannellini BeansGarbanzo Beans vs. Cannellini Beans
Shumaila SaeedShumaila Saeed
December 25, 2023
Garbanzo beans are round, beige legumes with a nutty taste, while cannellini beans are larger, white kidney beans with a milder flavor.
Grand Opening vs. Soft OpeningGrand Opening vs. Soft Opening
Shumaila SaeedShumaila Saeed
December 25, 2023
A Grand Opening is a highly publicized and celebratory launch of a business or venue, while a Soft Opening is a more subdued trial opening, often with limited services or a smaller audience.
Conflict vs. DisputeConflict vs. Dispute
Shumaila SaeedShumaila Saeed
December 25, 2023
Conflict is a serious disagreement or argument, often a prolonged one; a dispute is a disagreement or argument, but typically less severe and often more focused on a specific issue.
Single User Operating System vs. Multi User Operating SystemSingle User Operating System vs. Multi User Operating System
Shumaila SaeedShumaila Saeed
January 24, 2024
A Single User Operating System supports one user at a time, whereas a Multi User Operating System allows multiple users to operate simultaneously.
TPU vs. PUTPU vs. PU
Shumaila SaeedShumaila Saeed
April 26, 2024
TPU is a type of thermoplastic elastomer with high elasticity and durability, while PU, or polyurethane, is versatile with varying hardness and used in multiple applications.
Ivory vs. LinenIvory vs. Linen
Shumaila SaeedShumaila Saeed
March 6, 2024
Ivory refers to a shade of white with a slight yellowish or creamy hue, often associated with the material from elephant tusks, while linen is a textile made from flax fibers, known for its durability, coolness, and breathability.
Anglo Celtic vs. Anglo SaxonAnglo Celtic vs. Anglo Saxon
Shumaila SaeedShumaila Saeed
February 14, 2024
Anglo Celtic refers to cultures and peoples of British Isles origin with Celtic influences, while Anglo Saxon pertains to Germanic tribes who settled in England.

Featured Comparisons

New Comparisons