Das ist ein Weg zu sagen:
Diese Methode braucht diesen Variablentyp als Übergabeparameter ... wird keiner gegeben nimm den Defaultwert XYZ an:
Code: Alles auswählen
// .h
int addiere(int = 6, int = 7);
//.cpp
int addiere (int a, int b) { return a+b;}
Aufwrufbar dann so:
Code: Alles auswählen
std::cout << addiere() << std::endl;
std::cout << addiere(22) << std::endl;
std::cout << addiere(8,12) << std::endl;
Ausgabe:
In deinem Konkreten Beispiel wird ein Pointer auf ein parent übergeben, wenn du den nicht angiebst dann wird er als 0 angenommen ( == dieses Widget hat keinen parent):
Dieser Code:
Code: Alles auswählen
// viel code
{
QWidget w;
QMessageBox * mb1 = new QMessageBox;
QMessageBox * mb2 = new QMessageBox(0);
QMessageBox * mb3 = new QMessageBox(&w);
// noch mehr code
}
// mb3 gibts hier nicht mehr, wurde vom destruktor von w aufgeräumt da child
// mb1 und mb2 gibts immer noch
mb1->deleteLater();
mb2->deleteLater();
resultiert in 3 MessageBoxen, zwei ohne parent und eine mit.
Wird w zerstört geht mb3 mit übern Jordan, mb1 und 2 nicht ....