Realisierung von Interfaces



  • Hallo,

    ich stehe vor folgendem Problem: Ich muss ein Klassendesign und grundlegende Funktionalität auf abstrakter Ebene erstellen - im Prinzip ein Design welches großteils auf Interfaces beruht. Der Sinn dahinter ist, dass es zu diesen Klassen verschiedene Implementierungen geben wird. Die verschiedenen Implementierungen sollen für den Benutzer nicht sichtbar sein.

    Ich habe aber in C++ die Einschränkung dass ich Objekte mit rein virtuellen Funktionen nicht zurückgeben kann. Muss ich dann auf einfach virtuelle Funktionen zurückgreifen und einen leeren Körper erstellen? Wie umschifft man diese Problem - gibt es dafür fertige Design Pattern?

    Danke! 🙂



  • Marc++ schrieb:

    Ich habe aber in C++ die Einschränkung dass ich Objekte mit rein virtuellen Funktionen nicht zurückgeben kann. Muss ich dann auf einfach virtuelle Funktionen zurückgreifen und einen leeren Körper erstellen? Wie umschifft man diese Problem - gibt es dafür fertige Design Pattern?
    )

    Was meinst du damit? Versteh ich nicht.

    Interfaces gibts in C++ nicht, dazu behilft man sich abstrakter Klassen. D.h. du machst ne Klasse, die ausschliesslich aus rein virtuellen Methoden besteht.

    class MyInterface {
    public:
       virtual void foo() = 0;
    };
    

    Die verschiedenen Implementierungen sollen für den Benutzer nicht sichtbar sein.

    Versteh ich auch nicht, was du damit sagen willst.



  • Du kannst aber Zeiger oder Referenzen auf abstrakte Klassen zurückgeben.


Anmelden zum Antworten