J
Hallo,
gleich am Anfang Vielen Dank an nwp3, solche Hinweise helfen einen dann doch am meisten weiter (unique_ptr kannte ich noch nicht, da wird new/delete natürlich überflüssig:-)
Zu der Container Frage, mir erscheinen mehrere auch deutlich besser geeignet, zum einen weil mir auf Anhieb zehn verschiedene Widgets einfallen und man dann schnell auf mehrere 100 Elemente im Vektor kommt. Wenn man jetzt im Millisekundentakt ein Widget ändern muss (z.B. Uhrzeit) und dafür jedesmal mehrere 100 Elemente nach dem einen Richtigem durchsuchen muss, kann ich mir nicht vorstellen, dass das noch in der Geschwindigkeit möglich ist.
Ansonsten habe ich auch in Swordfish`s Code Durchblick gefunden, mein einziges Problem war tatsächlich, dass ich das:
Swordfish schrieb:
textbox_t( std::string const & text ) : id{ ++widget_t::id }, text{ text }
bisher nur so kannte:
textbox_t( std::string const & text ) : id( ++widget_t::id ), text( text )
Gibt es da einen Unterschied oder sind das Synonyme?
Zum Schluss noch zwei letzte Fragen:
Swordfish`s Vorschlag entspricht in etwa dem was ich vor habe (das mit mehreren Containern ist ja nur eine Kleinigkeit). Nur soll es eine weitere Klasse geben (z.B class windows - man beachte das "s"). Diese soll mehrere Objekte vom Typ window verwalten und man soll nur über diese Klasse z.B neue window-Objekte oder textbox/image-Objekte erzeugen können.
Sollte ich die verschiedenen window-Objekte ebenfalls über einen Vektor in der windows-Klasse abspeichern, oder gibt es da eine elegantere Lösung?
Ist der Ansatz korrekt, dass außer die windows-Klasse alle anderen Klassen nur private Memberfunktionen/-variablen besitzen und ich diese Klassen als friend der windows-Klasse angebe?
(Man soll ja nicht direkt auf die anderen Klassen zugreifen können)
Vielen Dank im Voraus, LG John.