Wo Objekte erzeugen in GUI Anwendung



  • Guten Tag,

    ich habe mal wieder eine (ich hoffe nicht dumme) Anfängerfrage zu der ich leider nicht weiter komme.
    Folgende Situation:
    Ich habe eine GUI Anwendung mit Qt realisiert. Nun möchte ich mit Hilfe eines Buttons den ich erstellt habe ein Objekt erzeugen und Memberfunktionen des Objektes ausführen. Da dieses Objekt dauerhaft verfügbar sein soll, weiß ich nicht an welcher Stelle das Objekt erzeugt werden muss. Bisher, als ich noch ohne gui gearbeitet habe, habe ich es in der main-Fuktion erstellt. Das kann ich über die GUI nach meinem Wissen nicht machen. Mir kommt es auch nicht richtig vor das object im Butten-clicked event zu erzeugen.

    Also kurz und knapp, wo das Objekt erzeugen und wie auf eine Memberfunktion zugreifen wenn das Objekt wo anders erzeugt wurde.
    Also vieleicht kann mir jemand einen Tipp geben damit ich weiter komme.

    Vielen Dank für jede Hilfe!



  • Das könntest du dir z.B. als member von deinem Main Window halten und dann an die Objekte, die das brauchen, weitergeben.



  • @mechanics Ok danke schon mal für den Hinweis. Was mir noch nicht klar ist, wie das mit der weitergabe funktioniert.
    Ist Pointer die richtige Denkrichtung?



  • Das ist jetzt relativ unabhängig davon, ob GUI oder nicht.
    So ganz allgemeine grobe Richtlinie, es sollte möglichst schwierig sein, den Code falsch zu benutzen. Könntest z.B. die C++ Core Guidelines lesen, irgendwo steht das wahrscheinlich dabei, weiß ich nicht mehr.
    Pointer ist eine der schlechtesten Varianten. Vielleicht in der Reihenfolge, je nachdem, was Sinn macht: const& -> & -> smart pointer -> Kopie -> pointer.
    Es kommt aber halt drauf an, was die Klasse mit Objekt machen (können) soll, und was nicht.



  • @mechanics Ok danke für die Hilfe. Ich denke ich werde mich mal in smart-pointer einlesen.