Hinfügen von Tagen, Monaten und Jahren zu einem Datum



  • 5cript schrieb:

    Ich sollte nicht auf die Detour (Das getrolle) eingehen, aber:

    Du musst ja nicht mit-trollen, solange du sinnvoll argumentierst ist es okay sich gegenseitig zu widersprechen.

    5cript schrieb:

    Das voranstellen des öffentlichen Interfaces der Klasse dient der Lesbarkeit. Weil der private Teil den Leser nicht interessiert und nicht zu interessieren hat. Sondern lediglich das Interface der Klasse. Und das sollte immer vorne stehen, außer es geht nicht anders (und das ist "nie" der Fall).

    Ob man ein private/public mehr oder weniger hat interessiert keine Sau.

    EDIT: IMO

    Mir ist es auch bewusst, das es um Sichtbarleiten geht. Wenn's Keinen interessieren soll, dann bilde ich doch einfach so etwas:

    #include <QScopedPointer>
    
    class PrivatePimpl;
    class Pimpl
    {
      QScopedPointer<PrivatePimpl> const impl;
    
      public:
    
        Pimpl();
       ~Pimpl();
    };
    

    Oder etwa nicht?



  • Und das soll jetzt besser sein, als "public:" lesen zu müssen? Ist doch großer Schwachsinn - kannst mir nicht erzählen, dass du das ernst meinst.



  • cvcv schrieb:

    Und das soll jetzt besser sein, als "public:" lesen zu müssen? Ist doch großer Schwachsinn - kannst mir nicht erzählen, dass du das ernst meinst.

    Genau so schwachsinnig ist es von Sichtbarleiten zu sprechen, wenn man etwas weiter unten alle Member auflistet.

    Damit bleibt nur das Argument, dass du das Interface hervorheben möchtest. Sehe ich ein. Hier kommt es aber wieder auf die Arbeitsweise an.

    Wenn ich eine fremde Klasse nutzen möchte, dann schaue ich mir die Doku oder ein Klassendiagramm an. Wenn das Letztere nicht gibt, dann kann man es sich mit zwei Klicks erstellen lassen.

    Beim Programmieren bekomme ich als Vervollständigung ohnehin nur den öffentlichen Teil, es sei denn ich habe was anderes voreingestellt.

    Von Sinn und Unsinn kannst du hier nicht sprechen.



  • Jetzt hast du ein paar Möglichkeiten aufgezählt, wie die du Nachteile von 'private first' etwas lindern kannst.
    Aber welchen Vorteil siehst du denn?



  • Jockelx schrieb:

    Jetzt hast du ein paar Möglichkeiten aufgezählt, wie die du Nachteile von 'private first' etwas lindern kannst.
    Aber welchen Vorteil siehst du denn?

    Mit möglichst wenig Zusatzinfos den selben Informationsgehalt bereitstellen?

    Dann kommen aber Gegenargumente wie "Ich mag das Schlüsselwort 'struct' nicht.", dass exakt diesen Fall abdeckt. Oder Ähnliches, was wieder in der Gefühls- und Ehrenebene endet.

    Versteh mich jetzt nicht falsch, Jeder so wie er es möchte. Nur wenn man anfängt das eine oder das Andere als Unsinn zu bezeichnen, sollte man es schon konsequent begründen.



  • class 
    {
        int a;
        int b;
        std::string c;
    
    public:
        bool isBla() const noexcept;
    
        void doSomething();
    };
    

    Ist besser als???:
    (Fremdklasse einer Bibliothek.)

    class 
    {
    public:
        /**
         *   DOCUMENTATION
         **/
        bool isBla() const noexcept;
    
        /**
         *   DOCUMENTATION
         **/
        void doSomething();
    
    private:
        int a;
        int b;
        std::string c;
    };
    

    Und zu Pimpl greif ich dann sicher nicht um ein private zu eliminieren.

    Man kann darüber streiten, aber ich sehe nicht, dass private-first besser lesbarer wäre.
    Ich weiß ja nicht ob deine privaten Teile in deinem Gesicht hängen, aber bei mir dürfen die gerne unten bleiben 😉



  • Schauen zu müssen, ob etwas "struct" oder "class" ist, um herauszufinden, ob das, was man gerade liest public oder private ist, ist nicht besser, als "public:" lesen zu müssen.
    Du hast immer noch absolut gar keine Argumentationsgrundlage.
    Die Aussage von der letzten Seite ("Wenn der Source-Code compiliert und exakt das gleiche tut, ist es unnötige Information.") lässt dich immer noch als sehr inkompetent dastehen. Wer solche Aussagen trifft kann nicht ernst genommen werden.



  • asdsaddsasds schrieb:

    5cript schrieb:

    Ich sollte nicht auf die Detour (Das getrolle) eingehen, aber:

    Du musst ja nicht mit-trollen, solange du sinnvoll argumentierst ist es okay sich gegenseitig zu widersprechen.

    Nu, es hat bloss keinen Sinn zu versuchen mit dir zu argumentieren, da du es einfach mit "ne, ich hab Recht" abtust. Ist ja nicht so als dass ich es nicht probiert hätte.

    Ich hab auch nix dagegen sachlich zu argumentieren. Ich tu' es mir bloss nicht an wenn ich merke dass mein Gegenüber nicht daran interessiert ist. Und dass du das nicht bist hast du ja bereits sehr schön demonstriert. Also was soll das ganze noch?



  • 5cript schrieb:

    class 
    {
        int a;
        int b;
        std::string c;
    
    public:
        bool isBla() const noexcept;
    
        void doSomething();
    };
    

    Ist besser als???:
    (Fremdklasse einer Bibliothek.)

    class 
    {
    public:
        /**
         *   DOCUMENTATION
         **/
        bool isBla() const noexcept;
    
        /**
         *   DOCUMENTATION
         **/
        void doSomething();
    
    private:
        int a;
        int b;
        std::string c;
    };
    

    Aus Gewohnheit das struct als Schlüsselwort zweiter Klasse zu behandeln während class als vollwertiges Objekt gesehen wird ist diametral zu dem was (wahrscheinlich) im Standard steht. Das müsst ihr wohl besser wissen als ich. Der einzige mir bekannte Unterschied liegt in der default Sichtbarkeit. Alles andere ist persönlicher oder festgelegter Stil und daher ist es grundsätzlich erlaubt darüber zu sprechen. Auch wenn Leute wie hustbear diejenigen als Idioten hinstellen möchten.

    5cript schrieb:

    Und zu Pimpl greif ich dann sicher nicht um ein private zu eliminieren.

    Sehe ich ein. Habe ich auch so geschrieben.

    5cript schrieb:

    Man kann darüber streiten, aber ich sehe nicht, dass private-first besser lesbarer wäre.

    Wird auch so akzeptiert. Du kannst auch public fist und struct nehmen, aber es wird bei dir wahrscheinlich dasselbe Gefühl auslösen, wie wenn du die Zahnbürste mal in die andere Hand nimmst 😃



  • asdsaddsasds schrieb:

    5cript schrieb:

    Man kann darüber streiten, aber ich sehe nicht, dass private-first besser lesbarer wäre.

    Wird auch so akzeptiert. Du kannst auch public fist und struct nehmen, aber es wird bei dir wahrscheinlich dasselbe Gefühl auslösen, wie wenn du die Zahnbürste mal in die andere Hand nimmst 😃

    Ich habe keine privaten Member in einer Struct. Niemals.

    EDIT: Warum?
    Für mich haben structs implizit niemals Funktionen die schreibend die member ändern. Ich erlaube mir nur read-only Memberfunktionen, falls nötig oder angenehm.
    Denn wenn ich nicht kapsele, haue ich mir auch keine versteckten Invarianten rein!!! Der Bedarf für private Member entfällt.



  • Danke für eure Antworten 👍 Auch dir lieber hustbear 😉 Ich denke ihr habt euren Standpunkt zu genüge erklärt.


Anmelden zum Antworten