Seite 1 von 1

Qt Objekte erzeugen

Verfasst: 26. Dezember 2009 12:36
von el-gringo
hallo liebe community,
ich sitze gerade an einem Projekt von mir und möchte den Quellcode optimieren. In Qt ist es möglich Instanzen von Klassen mit einem Pointer zu deklarieren und diesem dann Speicher zuzuweisen oder direkt als Objekt zu deklarieren

Beispiel :

Code: Alles auswählen

Auto *bmw = new bmw();
Auto mercedes;
Beide Varianten erzeugen ein Objekt der Klasse 'Auto'. Grundlegend würde ich gerne in Erfahrung bringen wann man welche Variante verwenden sollte und was die genauen Unterschiede / Vor- und Nachteile sind.

Verfasst: 26. Dezember 2009 13:19
von franzf
Das ist aber jetzt nicht Qt-spezifisch, sondern C++-Grundlagen...
Ein Pointer wird nicht automatisch verwaltet, löschen musst du ihn. Vergisst du es entstehen Speicherlecks, dein Programm macht sich im RAM immer breiter und breiter, je länger es läuft. Vorteil ist aber, dass das Objekt den aktuellen Scope überlebt. Man kann Objekte über Basisklassenzeiger verwalten. Man kann polymorphe Klassen in ner Liste verwalten. Das geht mit automatisch speicherverwalteten Objekten nicht.
Über Vor- und Nachteile sollte aber genügend in deinem C++-Buch stehen.

Verfasst: 26. Dezember 2009 13:34
von el-gringo
danke für die schnelle antwort, werde mir nochmal die lektüre zu gemüte ziehen