Kreieren von Objektvariablen

HarryXVI

Erfahrenes Mitglied
Ich habe in der Header-Datei folgendes Objekt deklariert:
Code:
TTimer *m_Timer;

Jetzt muss ich in der Unit den Konstruktor aufrufen. Da in C++ alle Konstruktoren den selben Namen wie ihre Klasse tragen, kann ich ihn aufrufen.
Code:
m_Timer = TTimer::TTimer();

Das Problem ist jetzt, dass TTimer einen AOwner vom Typ TComponent verlangt. Da gibts aber keinen. Aus Delphi kenne ich das Wort "nil", was man da rein schreiben kann. Aber wie läuft das in C++?

Zweite Frage: Wenn ich eine Methode einer Klasse habe und in der Implementation auf diese Klasse verweise, gibt es in Delphi das Wort self. Beispiel:
Code:
constructor TKlasse.Create; begin .... self.Color = clBlue; end;

Wie macht man das in C++?
 
du musst eine neues Objekt der Klasse mit new anlegen
guck mal bei dynamischer speicherverwaltung

z.B.
C:
TTimer  *m_Timer = new TTimer();
so glaube oder ohne Klammern
 
"nil" heißt in C++ einfach NULL, wobei "#define NULL 0". Anstatt von "self." nimm "this->". Objekte werden erzeugt wie 3Cyb3r schon sagt, mit "new". Dabei musst du aber beachten, dass du sie auch im Desktruktor mit "delete" wieder löschst! Die Klammer müssen hinten hin, weil sie ja die leere Parameterliste des Konstruktors darstellen.
 
Zuletzt bearbeitet:
Zurück