Allgemeine Frage zu Klassen



  • 😂 😂
    Alles klar.
    Danke



  • @robert123 sagte in Allgemeine Frage zu Klassen:

    Ich habe die Bücher noch nicht durch und hole sie immer mal wieder aus dem Schrank.

    Vielleicht als erstes das Wolf-Zeugs wegwerfen (oder als Türstopper verwenden, oder an eine gehasste Person verschenken) und dann den C++-Primer durcharbeiten.



  • @wob sagte in Allgemeine Frage zu Klassen:

    Ein Wurstbrot ist ein Supermarkt?! WTF!

    Nene. Eine Wurstbrot ist zwei Supermärkte! Ich glaub das ist so wie mit dem Spice und den Würmern. Das versteht man nur wenn man das Buch gelesen hat.



  • @Swordfish
    Den Primer habe ich bisher am meisten benutzt.
    Das schöne an dem Buch finde ich, dass man merkt, dass der jenige, der es geschrieben hat auch Ahnung hat.
    Bei den meisten Tutorials und .pdfs die mal durchgesehen habe gefällt mir der Schreibstil überhaupt nicht.
    Ich kann das gar nicht beschreiben.
    beim Primer merkt man irgendwie das mein ein Buch für erwachsene in der Hand hällt.
    Komische Beschreibung aber mir fällt da nichts anderes zu ein.
    Der Schinken von Bjarne ist auch nicht schlecht. Dort wird sehr schnell auf Dinge eingegangen die in den meisten Büchern erst sehr spät behandelt werden. Zum Beispiel das Thema vectoren. Das einzige was mich nur daran stört ist dass die Codebeispiele in dem Buch sich nur comiplieren lassen, wenn man sich bjarnes zugehörige Headerdatei aus dem Netz lädt.
    Aber auch damit hatte ich schon einige Probleme, weil irgendwas gefehlt hat.

    Ich will den Beitrag jetzt nicht vollstopfen mit der Diskussion über Bücher aber eine Sache möchte ich gerne noch loswerden, die mir auch immer wieder schwerfällt. Ich kam beim Primer jetzt an eine stelle, an der ich das Buch erstmal wieder weggelegt habe. Allerdings nicht, weil da irgendein Mist drin stand, sondern, weil ich mit dem dargestellten überhaupt nichts anfangen konnte.

    Wenn bspw. Strings behandelt werden, hat mal sehr schnell Erfolge zu verbuchen
    "Hey, ich kann etwas ausgeben"
    mit Integern und Operatoren kann ich rechnen.
    "Nice, ich programmiere einen Taschenrechner"
    Ihr wisst was ich meine.
    Aber das letzte Thema was ich gelesen hatte, war etwas über Bitsets, Bitverschiebung, etc.
    und ich fragte mich, was zur Hölle ich damit anfangen kann. Da meistens auch nicht auf konkrete Anwendungsbeispiele eingegangen wird, sondern eher erklärt wird, was diese oder jene Funktion macht, ist es sehr schwer für mich da einen Nutzen raus zuziehen.
    Versteht ihr was ich meine.
    Ich hab einfach keinen Plan, was ich mit einem Bitsets machen soll. Und dann ist es nur eine Frage der Zeit, bis ich eine Unlust entwickele und das Thema recht schnell wieder vergesse.
    Es soll jetzt nicht um Bitsets an sich gehen, das betrifft immer mal wieder das ein oder andere Thema.
    Auch das Durcharbeiten des selbigen Themas wird immer langweiliger, weil ich eben nicht weiß wozu der Autor das Thema so ausbaut, ich am Ende aber trotzdem nicht weiß wozu ich das brauche.
    Klar, beim Computer geht es in der Tiefe um Bits, aber warum sollte ich eine Bitreihe um 3 verschieben?
    Das war jetzt keine Frage😅
    Wollte nur meine allgemeinen Schwierigkeiten nochmal darlegen.



  • @robert123 sagte in Allgemeine Frage zu Klassen:

    Klar, beim Computer geht es in der Tiefe um Bits, aber warum sollte ich eine Bitreihe um 3 verschieben?

    constexpr unsigned flag_foo = 1 << 0;
    constexpr unsigned flag_bar = 1 << 1;
    constexpr unsigned flag_qux = 1 << 2;
    constexpr unsigned flag_lol = 1 << 3;
    
    unsigned flags = flag_bar | flag_lol;
    
    if (flags & flag_lol) {
        // lol is set
    }
    


  • 😅
    Danke, aber ich verstehe nur Bahnhof.🤣



  • @Swordfish sagte in Allgemeine Frage zu Klassen:

    unsigned flags = flag_bar | flag_lol;
    

    Was kommt dabei raus?



  • Ich hoffe ich versaue das jetzt nicht 😰

    ich würde auf den ersten Blick sagen

    00001001
    


  • oh warte. nein, stimmt nicht
    warte
    Das hier

    00001010
    


  • Siehst? Mit dem Shift-Operator kann ich mich garnicht verzählen 🙂



  • War das denn richtig?
    Ich Frage mich dennoch, wozu ich das brauche.
    In welchem Fall muss ich sowas Mal machen?





  • Wow. Nice.
    Danke dir, jetzt wird einiges klar.



  • @hustbaer sagte in Allgemeine Frage zu Klassen:

    Nene. Eine Wurstbrot ist zwei Supermärkte!

    ...sonst müsste man die Würste und Brote ja auch virtuelle Supermärkte sein!

    Seien wir mal ehrlich. In der Corona-Zeit müssten Supermärkte doch eigentlich per Default virtuell sein oder nicht? Auf der Insel Java, habe ich gehört, wurde das politisch schon durchgedrückt - es gibt dort nur noch virtuelle Supermärkte (allerdings nie 2 auf einmal).

    Aber ehrlich. Das steht da echt in dem Buch echt drin?

    @robert123 findest du nicht auch, dass eine Modellierung, bei der man zwei Supermärke durch ein Wurstbrot ersetzen kann, merkwürdig ist? Schon die Wurst allein oder das Brot allein muss alle Eigenschaften eines Supermarktes haben. Klingt für mich irgendwie verkehrt.

    Schau dir auch mal https://de.wikipedia.org/wiki/Liskovsches_Substitutionsprinzip an.

    Leicht angeändertes Zitat:
    Sei q(x)q(x) eine beweisbare Eigenschaft von Objekten xx des Typs Supermarkt\text{Supermarkt}. Dann soll q(y)q(y) für Objekte yy des Typs Wurst\text{Wurst} wahr sein, wobei Wurst\text{Wurst} ein Untertyp von Supermarkt\text{Supermarkt} ist.



  • @wob sagte in Allgemeine Frage zu Klassen:

    Aber ehrlich. Das steht da echt in dem Buch echt drin?

    https://abload.de/img/wolff4jl6.png

    Kaum zu glauben - bei Wolf zu sehen!



  • @wob
    🤣
    Ja, das klingt tatsächlich etwas merkwürdig.
    Soweit bit ich in diesem buch noch gar nicht, daher ist es mir noch nicht unter die Augen gekommen.
    Vielleicht soll dieses Beispiel die Leute auch bei Laune halten, aber ich denke auch, dass so ein Beispiel in einem Buch von solchem Kaliber nichts zu suchen hat. Wie woanders schon gesagt, C++ ist die Königsdisziplin und man sollte die Themen auch so behandeln.



  • @robert123 sagte in Allgemeine Frage zu Klassen:

    in einem Buch von solchem Kaliber

    Das Buch ist von der ersten Seite an schlecht.



  • Alles klar, ich legs weg.
    Danke.

    @hustbaer
    Ich habe mir mal den Link zum Liskovsche Substitutionsprinzip angesehen.
    Ich muss es wahrschenlich noch ein 2. mal lesen um alles zu verstehen, aber zu dem Beispiel was dort genannt wird...
    Würde ich eine Grafikklasse schreiben, und von da aus weitere Unterklassen ableiten, wie in dem Beispiel Rechteck, Elipse und Text, dann würde mir persönlich nicht einfallen, eine weitere Klasse Kreis schreiben, die allerdings eine Unterklasse von Elipse ist, nur weil ich meine, dass ein Kreis ja fast eine Elipse ist. Ein Kreis wäre bei mir und bei den meisten wahrscheinlich auch, eine Unterklasse der Grafikklasse.
    Oder nicht?
    Ich kann zwar die Problematik verstehen, die dort angesprochen wird, aber in der Praxis, macht das doch so keiner, oder.
    Das Beispiel mag sehr banal sein, aber bezogen auf dieses Beispiel würde ich jede Geometrische Form zu einer Unterklasse der Grafikklasse machen.



  • @robert123
    Naja...
    Also ersmal ist ein Kreis ja eine Ellipse. Bloss halt ein Spezialfall. Von daher erscheint es vielen vernünftig Kreis von Ellipse erben zu lassen. Das Problem ergibt sich dabei nur, weil man erlaubt die Objekte nachträglich zu ändern.
    Wenn man die Objekte dagegen unveränderlich macht, dann verschwindet auch das Problem. Dann kann man problemlos Kreis von Ellipse ableiten.

    In der Praxis ist die "Ellipse" halt meistens etwas viel komplizierteres. Und oft hat man auch schon viel existierenden Code der mit "Ellipsen" arbeitet wenn man dem "Kreis" begegnet. Und dadurch einen guten Grund dass man ermöglichen möchte den "Kreis" als "Ellipse" behandeln zu lassen.

    Das Thema ist einigermassen komplex. Ich glaube da könnte man ganze Bücher drüber schreiben. Und vorher mal ein paar Jahre forschen wenn man es vernünftig machen möchte.

    aber in der Praxis, macht das doch so keiner, oder.

    Leute sind faul. Manager sind ungeduldig. In der Praxis werden alle möglichen Sauereien gemacht.



  • Ich würde einfach vorschlagen, den Kreis von Wurstbrot abzuleiten (je nach Brottyp und Blickwinkel könnte es hinkommen). Da hat offensichtlich jemand schon so viel zu dem Thema geforscht, dass wir die genialen Erkenntnisse nicht einmal nachvollziehen können.


Anmelden zum Antworten