Hilfsklassen



  • Welche Version ist besser ?

    #include <fuerHelferKlasse1.h> 
    class fuerHelferKlasse2;
    
    class X {
       ....
    private:
      class Hilfmir { ..... } helfer;
    };
    

    oder außerhalb von Klasse X in der Implementierungsdatei (*.cpp):

    #include <fuerHelferKlasse1.h> 
    #include <fuerHelferKlasse2.h> 
    namespace {
      class Hilfmir { ..... } *helfer;
    }
    
    X() { helfer = new Hilfmir(); }
    ~X() { delete helfer;}
    


  • Nunja, spontan (nach meinem Gefühl her) würde ich sagen, die zweite Version.



  • naja, kommt ganz drauf an. Es ist keinem geholfen, wenn du 20 kleine Helferklassen, die jeweils 50 Zeilen Aufwand haben und sowieso immer zusammenarbeiten müssen, in 20 einzelne header und cpp-Dateien packst. Du musst dann nämlich auch jedesmal die 20 header includieren und jedesmal alle 20 cpps bzw. objektdateien beim compilieren mit angeben.
    Ich würd also sagen: Klassen, die untrennbar miteinander verknüpft sind, können auch durchaus in der gleichen Datei auftauchen...



  • Hi,

    ich würde auch sagen, dass es ganz darauf ankommt was du damit ausdrücken willst. Ich weiss nicht obs das wort gibt aber ich würde den fall 1 mal als statische aggregation sehen. Wenn also die helfer auf klassen ebene nur mit den klassen zusammen sinn machen, dann würde ich zu 1 tendieren.

    Diese schachtelung stammt afaik aus einer zeit in denen namespace noch nicht so richtig unterstützt wurden, also hat man das so gemacht.



  • Bin inzwischen klar für Version 2, da die .h-Datei in Version 1 Header beinhaltet, die außerhalb der Implementierung von X nicht von Interesse / also überflüssig sind:

    #include <fuerHelferKlasse1.h>
    class fuerHelferKlasse2;
    

    Version 1 wär eine Option, falls die Hilfsklasse keine zusätzlichen include-Anweisungen erforderte.
    Vielen Dank für die Antworten
    Pdug


Anmelden zum Antworten