Interfejs Opisz:
class Opisz {
virtual void opisz()=0;
};
Interfejs jest szczególnym przypadkiem klasy abstrakcyjnej. Mianowicie jest to klasa abstrakcyjna, która nie zawiera pól, a metody są jedynie czysto wirtualne. Nasz interfejs Opisz pozwala rozszerzyć klasę, która z niego korzysta o możliwość wyświetlenia informacji o sobie. Przykładowo zainplementowany w klasie Uzytkownik pozwoli wyświelić dane o konkretnym użytkowniku (imię, nazwisko, tytuł wypożyczonego filmu). Natmomiast użyty w klasie Wypożyczalnia wyświetlni nazwę wypożyczalni i dane o niej. Jak widać interfejs ma służyć rozszerzeniu klasy o pewną funkcjonalność.
class Uzytkownik : Opisz {
std::string imie, nazwisko;
int rachunek;
int nr_karty;
public:
Film *wypozyczony;
Uzytkownik(std::string imie, std::string naz, int rach, int nr);
int zwroc_nr();
void opisz();
};
Klasa Użytkownik reprezentuje klienta naszej wypożyczalni. Dla uproszczenia przyjęliśmy, że jeden użytkownik może wypożyczyć tylko jeden film (choć łatwo byłoby to rozbudować np. tak aby wskaźnik *wypożyczony wskazywał na tablicę). Jak widać Uzytkownik dziedziczy po Opisz co jest równoznaczne z zastosowaniem interfejsu w tej klasie. Znajduje się tam również konstruktor parametryczny oraz 2 metody. *wypożyczony celowo został umieszczony w sekcji publicznej, aby móc go modyfikować i odczytywać z poziomu innych klas.