Interfaces - Kamills-12/2143-OOP GitHub Wiki

Interfaces

Kade Miller


What’s an Interface?

In C++, we don’t have a keyword for interface like in Java or C#. Instead, we use abstract classes where every function is pure virtual.


Why Use Interfaces?

  • Keeps consistency between classes.
  • Helps you write flexible code.
  • Makes it easy to swap parts of program without breaking things.

Quick Interface Example in C++

#include <iostream>
using namespace std;

// Interface (pure abstract class)
class Drawable {
public:
    virtual void draw() = 0;  // pure virtual
    virtual ~Drawable() = default;  // always give interfaces virtual destructors
};

// Concrete class
class Circle : public Drawable {
public:
    void draw() override {
        cout << "Drawing a circle." << endl;
    }
};

class Square : public Drawable {
public:
    void draw() override {
        cout << "Drawing a square." << endl;
    }
};

int main() {
    Drawable* shape1 = new Circle();
    Drawable* shape2 = new Square();

    shape1->draw();  // Drawing a circle.
    shape2->draw();  // Drawing a square.

    delete shape1;
    delete shape2;
    return 0;
}
⚠️ **GitHub.com Fallback** ⚠️