Pure Virtual Functions and Abstract Classes in C++ Last Updated : 15 Oct, 2025 Comments Improve Suggest changes 341 Likes Like Report A pure virtual function is a virtual function with no implementation in the base class, declared using = 0. A class with at least one pure virtual function is an abstract class that cannot be instantiated and serves as a blueprint for derived classes, which must provide their own implementation.A class with at least one pure virtual function becomes an abstract class and Objects of abstract classes cannot be created directly.Abstract classes are used to define interfaces and ensure common structure among derived classes.Useful in polymorphism where different classes share the same interface but have different behaviors. A pure virtual function forces derived classes to override it.virtual void draw() = 0; declares a pure virtual function, forcing derived classes to provide their own implementation. C++ #include <iostream> using namespace std; class Shape { public: virtual void draw() = 0; // Pure virtual function }; class Circle : public Shape { public: void draw() override { cout << "Drawing Circle\n"; } }; int main() { // Error in the below line : Cannot create // object of abstract class // Shape s; // Pointer to abstract class Shape* s = new Circle(); // Output: Drawing Circle s->draw(); delete s; } OutputDrawing Circle Explanation: This example shows an abstract class Shape with a pure virtual function draw(). Circle overrides draw(), and using a Shape pointer to a Circle demonstrates polymorphism, outputting Drawing Circle. Comment K kartik Follow 341 Improve K kartik Follow 341 Improve Article Tags : C++ cpp-virtual cpp-inheritance Explore C++ BasicsIntroduction to C++3 min readData Types in C++6 min readVariables in C++4 min readOperators in C++9 min readBasic Input / Output in C++3 min readControl flow statements in Programming15+ min readLoops in C++7 min readFunctions in C++8 min readArrays in C++8 min readCore ConceptsPointers and References in C++5 min readnew and delete Operators in C++ For Dynamic Memory5 min readTemplates in C++8 min readStructures, Unions and Enumerations in C++3 min readException Handling in C++12 min readFile Handling in C++8 min readMultithreading in C++8 min readNamespace in C++5 min readOOP in C++Object Oriented Programming in C++8 min readInheritance in C++6 min readPolymorphism in C++5 min readEncapsulation in C++3 min readAbstraction in C++4 min readStandard Template Library(STL)Standard Template Library (STL) in C++3 min readContainers in C++ STL2 min readIterators in C++ STL10 min readC++ STL Algorithm Library3 min readPractice & ProblemsC++ Interview Questions and Answers1 min readC++ Programming Examples4 min read Like