moechild hat geschrieben:Ich finde 2 Arten von Konstruktoren in Qt;
die Einen wie das Beispiel von QApplication,
und die Anderen wie das Beispiel von QLabel.
Beim zweiten wird ein Zeiger verwendet (QLabel
*), für das du beim Erzeugen neuen Speicher (new) anfordern musst. Dafür wird im Speicher ein neues Objekt angelegt und dessen
Adresse an label zugewiesen (*label stellt dann das eigentliche Objekt dar).
Im ersten Fall instantiierst du direkt ein Objekt und du arbeitest ohne Zeiger auf das Objekt.
Folgende Anweisungen sind deshalb identisch:
Code: Alles auswählen
// erst ein Objekt dynamisch anlegen:
QLabel *label;
label = new QLabel( "Testtext" );
QString txt;
// jetzt die beiden identischen Anweisungen:
txt = label->text();
txt = (*label).text();
Der Konstruktor, wie du ihn in der Doku siehst, zeigt dir nur, wie du die Parameter angeben musst, um dein Objekt zu instantiieren. Vom
Aussehen her sind die deshalb recht ähnlich (Tschuldigung für diese laienhafte Darstellung

).
Aber das sind alles C++-Sachen, hat also gar nix mit Qt zu tun. Kannst dir da ja mal was nettes im Internet suchen (wenn du Englisch magst:
Thinking in C++).
Grüße
Franz