Solved Verständnis Fragen zu Destructor anhand einen Beispiel
-
Hallo zusammen,
ich bin dabei dieses Beispiel " https://doc.qt.io/qt-5.10/qtwidgets-widgets-calculator-example.html"einzuarbeiten.
Meine Frage bezieht sich genau auf die folgende class "https://doc.qt.io/qt-5.10/qtwidgets-widgets-calculator-calculator-h.html"
Bei diesem class wurde einen Zeiger Array von Typ Butto deklariert:
Button *digitButtons[NumDigitButtons];
was mir nicht ganz klar warum wude kein destructor definiert um dieser Zeiger Array zu löschen?
Mir ist schon klar, dass es keinen directen Object "digitButtons" mit (digitButtons = new Button(...) )
erzeugt wurde. Es wurde dann die Erzeugung des Objects in eine andere Funktion gekappselt.
Könnte es bitte jemende erklären warum?
Danke -
@Galilio Wenn ich das richtig sehe, ist
Button *digitButtons[NumDigitButtons];
kein Zeiger auf ein Array sondern ein Array von Zeigern, deswegen werden die einzelnen Zellen auch mit nem Zeigen vonButton
gefüllt:Button *createButton(const QString &text, const char *member);//gibt nen pointer wieder digitButtons[i] = createButton(QString::number(i), SLOT(digitClicked()));//Speichert den Pointer im Array
mit
mainLayout->addWidget(digitButtons[i], row, column);
bekommen die einzelnen Buttons dann nen parent zugewiesen, das Layout macht das automatisch, das heißt also dass die Buttons mit der Vernichtung des Layouts auch zerstört werden.
-
@J-Hilk
Super erklärtDanke