Wohin mit Membern



  • µ schrieb:

    ..die Schnittstelle. Die sollte abstrahiert in einer Basisklasse oder einem Interface vorliegen.

    Es geht hier um C++ 😉



  • hustbaer schrieb:

    µ schrieb:

    ..die Schnittstelle. Die sollte abstrahiert in einer Basisklasse oder einem Interface vorliegen.

    Es geht hier um C++ 😉

    Dann ersetze "Interface" durch "Abstrake Basisklasse" 😉



  • Abstrakte Basisklassen meidet man in C++: machen alles langsam wegen virtual



  • µ schrieb:

    hustbaer schrieb:

    µ schrieb:

    ..die Schnittstelle. Die sollte abstrahiert in einer Basisklasse oder einem Interface vorliegen.

    Es geht hier um C++ 😉

    Dann ersetze "Interface" durch "Abstrake Basisklasse" 😉

    Ich weiss schon was du meinst, nur ist das eben nicht der "C++ way of doing it".
    Abstrake Basisklasse = virtual call = langsam.
    Direktes Interface = gute Chance für Inlining = potentiell (und meistens auch real) viel schneller.



  • Was ist ein "Interface" in C++?



  • gastfrage schrieb:

    Was ist ein "Interface" in C++?

    das selbe wie in anderen Sprachen. In dem Fall die (öfffentliche) Schnittstelle der Klasse.

    Private-Kram hat da eigentlich gar nichts zu suchen. In C++ muss es wegen dem Speichermodel leider dabei stehen.

    Ist mir unbegreiflich wieso man erst die privaten Member sehen will wenn man in einen Header guckt. Die Implementation ist doch eh in einer anderen Datei.



  • DrGreenthumb schrieb:

    gastfrage schrieb:

    Was ist ein "Interface" in C++?

    das selbe wie in anderen Sprachen. In dem Fall die (öfffentliche) Schnittstelle der Klasse.

    Ich glaube das war hier damit nicht gemeint, da is im Gegensatz zu abstrakten Basisklassen stand (also in etwa so wie ein Interface in Java).
    Würde nun gern wissen wie ich sowas - oder allgemein eine vernünftige Vererbungshierarchie - in C++ realisieren soll, wenn ich keine "bösen langsamen" virtuellen Methoden benutzen darf 😕



  • gastantwort schrieb:

    DrGreenthumb schrieb:

    gastfrage schrieb:

    Was ist ein "Interface" in C++?

    das selbe wie in anderen Sprachen. In dem Fall die (öfffentliche) Schnittstelle der Klasse.

    Ich glaube das war hier damit nicht gemeint, da is im Gegensatz zu abstrakten Basisklassen stand (also in etwa so wie ein Interface in Java).
    Würde nun gern wissen wie ich sowas - oder allgemein eine vernünftige Vererbungshierarchie - in C++ realisieren soll, wenn ich keine "bösen langsamen" virtuellen Methoden benutzen darf 😕

    Mit einem Haufen Templatekram



  • gastantwort schrieb:

    DrGreenthumb schrieb:

    gastfrage schrieb:

    Was ist ein "Interface" in C++?

    das selbe wie in anderen Sprachen. In dem Fall die (öfffentliche) Schnittstelle der Klasse.

    Ich glaube das war hier damit nicht gemeint, da is im Gegensatz zu abstrakten Basisklassen stand

    Doch, genau das war gemeint.



  • abstract polymorphe basisklasse halbherzig zusammengeschustert durch weltfremden langzeitfrickler


Anmelden zum Antworten