How do I implement interfaces with pure virtual functions?

In C++, interfaces can be created using abstract classes with pure virtual functions. This allows you to define a contract that derived classes must implement, ensuring that they provide specific functionality. Below is an example demonstrating how to implement an interface with pure virtual functions in C++.
C++, interfaces, pure virtual functions, abstract classes, OOP, inheritance
// Interface definition class Drawable { public: virtual void draw() = 0; // Pure virtual function virtual ~Drawable() {} // Virtual destructor }; // Class that implements the interface class Circle : public Drawable { public: void draw() override { // Implementation for drawing a circle std::cout << "Drawing a Circle" << std::endl; } }; // Another class that implements the interface class Square : public Drawable { public: void draw() override { // Implementation for drawing a square std::cout << "Drawing a Square" << std::endl; } }; // Usage int main() { Drawable* circle = new Circle(); Drawable* square = new Square(); circle->draw(); // Output: Drawing a Circle square->draw(); // Output: Drawing a Square delete circle; delete square; return 0; }

C++ interfaces pure virtual functions abstract classes OOP inheritance