new legt dir immer nen zeiger an ....
new allokiert dir ein object dynamisch aufm freestore.
QGridLayout *newLayout(this);
da stimmt was nicht
QGridLayout * ist der typ deiner variable, also nen zeiger auf nen gridlayout.
newLayout ist deine variable
mit (this) initialisiest du den wert. this ist der zeiger auf das Object, in dessen methode du grad bist. aber bist du grad in nem QGridLayout oder ner abgeleiteten klasse davon ?
QGridLayout *newLayout(this);
QGridLayout *newLayout = this;
waeren unter c++ gleichwertig.
aber glaub ned das du das gewollt hasst ^^
QGridLayout *newLayout = new QGridLayout(this);
das sieht eher nach Qt aus ....
du erzeugst dyn. nen neues QGridLayout. dabei nutzt du nicht den standardkonstruktor sondern einen speziellen.
das (this) hat hier also eine etwas andere bedeutung.
Qt hat eine interne hirarchie, und jedes von QObject abgeleite Object, kann mit einem parent, der auch vom typ QObject sein muss, instanziiert werden. intern pflegt die qt dann ne abhaengigkeitsliste, und sorgt dafuer, das wenn du einen parent loeschst, alle untergeordneten QObject-Childs mit geloscht werden. Das erspart dir sehr oft viel schreibarbeit, und führt zu mehr leserlichen code.
Weil du kannst so, instanzier mich und vergess mich gleich wieder Objecte, wie layouts und labels, die nur einmal instanzieierst und nie wieder anfasst, auch wirklich gleich wieder vergessen.
im traditionellen c++ muesstest listen fuer die objecte pflegen und die selber loeschen wenn nimmer gebraucht werden.
newLayout = new QGridLayout;
hier erzeugst du ein neues qGridlayout mittels Standardconstruktor und weisst es newlayout zu. newLayout sollte also vom typ zeiger auf QObject oder QGridLayout oder irgend ner klasse dazwischen sein
newlayout also die instanz auf die du mit der variable verweisst, hat aber dann kein QOBjectparent, und du musst es entweder selber loeschen (delete) oder ihm irgendwann mal ein parent zuweisen.
Glaub das wolltest du eigentlich nicht fragen oder ?
du wolltest eher auf den unterschied zwischen dynamischer allokierung (Freestore) und statischen variablen (Stack) eingehen, oder ?
Ciao ...