[Code] FileExplorer - Verbesserungsvorschläge?



  • Muss mal bei Amazon nach Büchern für Klassendesign suchen, finde das sehr interessant und will nicht jedesmal wegen jedem Mist hier nachfragen 🙂

    MfG SideWinder



  • Der Rest wird ebenfalls bei Gelegenheit bearbeitet, die const bleiben aber.

    Und *warum*?



  • Erstmal ist alles konstant und dann nimmt man die const weg wo man muss damit es auch funktioniert. Dann kann man so wenig wie möglich falsch machen.

    Warum sollten sie also weg? Welchen Grund gibts dafür? "Es sieht nicht so gut aus" ist nicht gerade die Antwort 🙄

    MfG SideWinder



  • Also ich meinte nur bei den Rückgabewerten.

    Bsp: const bool up()

    Das hat überhaupt keinen Sinn.



  • volkard schrieb:

    ok, darfst NO_FILE benutzen. (aber ich hab ein ungutes gefühl dabei.)

    doch nicht.
    der iterator muß ja ein HANDLE haben und praktischerweise auch ein WIN32_FIND_DATA.
    kannst wenn FindNext FALSE liefert, ruhig gleich FindClose machen und das handle invalidieren. dann kann man am wert des handles erkennen, ob man auf blabla.end() steht. kein bedarf für NO_FILE.



  • SideWinder schrieb:

    Muss mal bei Amazon nach Büchern für Klassendesign suchen, finde das sehr interessant und will nicht jedesmal wegen jedem Mist hier nachfragen 🙂

    wirst pech haben. aber falls du uml magst, das wirste in so büchern finden. 😃



  • Also das Entwurfsmusterbuch und OOP für Dummies finde ich ziemlich gut, es geht
    hier doch auch um das Klassendesign und dafür ist UML doch ausgelegt, und in
    OOP für Dummies lernt man ja auch wie man das nacher in Code umsetzt, wobei man
    hier ja eigentlich _nur_ noch die fertigen Methoden mit Code füllt.



  • SirLant schrieb:

    hier doch auch um das Klassendesign und dafür ist UML doch ausgelegt

    aber unbrauchbar. siehe thread "Informatiklehrer"



  • Toooom schrieb:

    Also ich meinte nur bei den Rückgabewerten.

    Bsp: const bool up()

    Das hat überhaupt keinen Sinn.

    bool foo() { return true; } //<--- ohne const
    
    int main() {
      foo()=false;
    }
    
    > g++ -Wall -W -std=c++98 const_ret.cc
    const_ret.cc: In function `int main()':
    const_ret.cc:4: error: non-lvalue in assignment
    

    vola. Das const ist dort so unnötig, wie das auto keyword 🙂

    btw.

    File (const WIN32_FIND_DATA& rData);
    

    ich würde wenn du schon ein Wrapper schreibst die Datenstrukturen komplett wegwrappen und nicht mit so Win32 Strukturen arbeiten

    *hust*boost::filesystem*hust*



  • Ich kann zwar nicht viel, aber dass mir das const beim Rückgabetyp nichts bringt weiß ich auch. Aber wie gesagt es ist eben mein Stil und drückt nochmals aus, dass der Rückgabewert konstant ist. Falls das irgendjemand nicht weiß und dein tolles Beispiel nicht gesehen hat 😉

    Frage: Was bringt -Wall bei g++?

    Und wie soll ich die WIN32_FIND_DATA komplett wegwrappen? Ich mein irgendwie muss ich ja aus der Datenstruktur die mir FindFirstFile()/FindNextFile() gibt ein FileInfo-Objekt machen - was gibts da besseres als einen Konstruktor?

    MfG SideWinder



  • mein tip: tu es nicht wegwrappen. aber geheimhalten in der klasse kannste es. und den ctor evtl private machen.


Anmelden zum Antworten