Seite 195 von 202 ErsteErste ... 95145185191192193194195196197198199 ... LetzteLetzte
Ergebnis 2.911 bis 2.925 von 3026

Thema: [Programmiererstammtisch] "Zum ächzenden Compiler"

  1. #2911
    Frühstücksbonze Avatar von Gullix
    Registriert seit
    21.07.10
    Beiträge
    13.402
    Zitat Zitat von Mongke Khan Beitrag anzeigen
    Wenn dann allerdings ein B : A (und C : B, ...) dazukommt, das die Member von A benutzen koennen soll, wird das wieder unangenehm
    protected?
    Mit Naturgesetzen kann man nicht verhandeln. --Harald Lesch

    Ein Atomkrieg würde die Menschheit auslöschen. Hätte aber auch Nachteile.

  2. #2912
    Wolf im Krokodilpelz Avatar von Mongke Khan
    Registriert seit
    25.06.11
    Ort
    KA
    Beiträge
    19.055
    Wenn es in A protected ist, damit B es nutzen kann, sieht doch AChil : A es genauso?
    Zitat Zitat von Ghaldak Beitrag anzeigen
    Wären die Beiträge der Admins alles, was zählt, dann wäre dieses Forum eine Geisterstadt mit Adventskalender.

  3. #2913
    ¡Olé! Avatar von Harleen
    Registriert seit
    07.01.06
    Ort
    Bremen
    Beiträge
    9.359
    Pack doch einfach Zeiger statt Objekte in den Vector von A. Dann kannst du da auch abgeleitete Klassen reinpacken.


    Code:
    class Obj {
      // ...
    } 
    
    class ObjChild : public Obj {
      // ...
    }
    
    class A {
      std::vector<std::unique_ptr<Obj>> m_objs;
    }
    
    class AChild : public A{
      // benutzt m_objs für ObjChild
    }

  4. #2914
    Registrierter Benutzer Avatar von alpha civ
    Registriert seit
    22.07.06
    Beiträge
    16.757
    Zitat Zitat von Mongke Khan Beitrag anzeigen
    (C++)

    Wie wuerdet ihr folgendes Szenario umsetzen: [...]
    Das ist kein Scenario, das ist schon eine mögliche Implementierung. Welches Verhalten soll den die Klasse haben bzw. deren Methoden? Das ist doch die spannende Frage. Daraus ergibt sich dann die Implementierung.

    Grundsätzlich solltest du dir auch die folgende Frage stellen, ob du ein polymorphes Verhalten benötigst. Falls nein, dann solltest du eher keine Vererbung verwenden. Sorgt nur für unnötige Kopplung und erhöht die Komplexität. Dann lieber Templates verwenden, was auch kein Overkill ist, sondern auch genau dafür da ist.

  5. #2915
    Wolf im Krokodilpelz Avatar von Mongke Khan
    Registriert seit
    25.06.11
    Ort
    KA
    Beiträge
    19.055
    Templates muss man ggf. aber immer durch den Code schleppen

    Setting ist: Ich habe geometrische Objekte (Shapes), von denen manche konvex sind. Die können alles, was die normalen auch können (Flächeninhalt berechnen, Prüfen ob ein Punkt drin liegt) und noch mehr (z.B. den Mittelpunkt berechnen, der garantiert im Shape liegt).
    Nun kommt ein Aggregator dazu, der neben Shapes noch mehr verwaltet (z.B. Punkte, die in diesen Shapes liegen können). Und es gibt auch einen, der nur konvexe Shapes zulassen soll (und dann dadurch auch ein paar Sachen anders/ effizienter machen kann, als der normale Aggregator). Kontextabhängig wird auf den aber auch als "normaler" Aggregator geschaut.
    Zitat Zitat von Ghaldak Beitrag anzeigen
    Wären die Beiträge der Admins alles, was zählt, dann wäre dieses Forum eine Geisterstadt mit Adventskalender.

  6. #2916
    ¡Olé! Avatar von Harleen
    Registriert seit
    07.01.06
    Ort
    Bremen
    Beiträge
    9.359
    Dann gib deinem normalen Aggregator und dem Konvex-Aggregator eine gemeinsame Interface-Klasse, wenn du Templates vermeiden willst (was ich durchaus verstehen kann). Also in etwa so:

    Code:
    class A_Interface {
    }
    
    class A : public A_Interface{
      std::vector<Obj> m_objs;
    }
    
    class AChild : public A_Interface {
      std::vector<ObjChild> m_objs;
    }

  7. #2917
    Registrierter Benutzer Avatar von alpha civ
    Registriert seit
    22.07.06
    Beiträge
    16.757
    Zitat Zitat von Mongke Khan Beitrag anzeigen
    Templates muss man ggf. aber immer durch den Code schleppen

    Setting ist: Ich habe geometrische Objekte (Shapes), von denen manche konvex sind. Die können alles, was die normalen auch können (Flächeninhalt berechnen, Prüfen ob ein Punkt drin liegt) und noch mehr (z.B. den Mittelpunkt berechnen, der garantiert im Shape liegt).
    Nun kommt ein Aggregator dazu, der neben Shapes noch mehr verwaltet (z.B. Punkte, die in diesen Shapes liegen können). Und es gibt auch einen, der nur konvexe Shapes zulassen soll (und dann dadurch auch ein paar Sachen anders/ effizienter machen kann, als der normale Aggregator). Kontextabhängig wird auf den aber auch als "normaler" Aggregator geschaut.
    Und du brauchst polymorphes Verhalten?

  8. #2918
    Wolf im Krokodilpelz Avatar von Mongke Khan
    Registriert seit
    25.06.11
    Ort
    KA
    Beiträge
    19.055
    Ich will es

  9. #2919
    Registrierter Benutzer
    Registriert seit
    21.03.12
    Beiträge
    22.445
    Bisher würde es auch ein Feld bIsConvex tun

  10. #2920
    Registrierter Benutzer Avatar von alpha civ
    Registriert seit
    22.07.06
    Beiträge
    16.757
    Dann lieber Polymorphie.

  11. #2921
    schläft Avatar von Frozen
    Registriert seit
    10.10.09
    Beiträge
    18.409
    ArrayOfStructs memory layout Emoticon: hadrian
    StructofArray ist meistens deutlich performanter
    Freedom's just another word for nothing left to lose

  12. #2922
    Wolf im Krokodilpelz Avatar von Mongke Khan
    Registriert seit
    25.06.11
    Ort
    KA
    Beiträge
    19.055
    Auf Performanz kommt es mir in dem Code gar nicht wirklich an.

  13. #2923
    Registrierter Benutzer Avatar von alpha civ
    Registriert seit
    22.07.06
    Beiträge
    16.757
    Zitat Zitat von Mongke Khan Beitrag anzeigen
    Auf Performanz kommt es mir in dem Code gar nicht wirklich an.
    Das traurige ist, dass das auch für "professionelle" Programmierer gilt, die für ihren Schrott auch noch Geld bekommen. Der Import einer Exceldatei mit ca 3k Zeilen kann dann schon mal so 10 Minuten dauern. Nicht wegen dem Parsen der Exceldatei - sondern wegen den zahlreichen Datenbankoperationen. Einfach der größte Rotz.

    Tests waren denen auch ein Fremdwort.

  14. #2924

  15. #2925
    Kunst am Arier Avatar von Snup
    Registriert seit
    09.12.09
    Ort
    Halle
    Beiträge
    12.981
    Achtung Spoiler:
    Bild




    Okay, musste erstmal wieder Regex lernen und wach werden, also hab ichs erst im zweiten Anlauf hingekriegt. Danach hab ich mir die anderen drei angeguckt und festgestellt, dass das genug Regex für die nächsten paar Jahre war.
    Angehängte Grafiken Angehängte Grafiken

Seite 195 von 202 ErsteErste ... 95145185191192193194195196197198199 ... LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •