Zeiger auf Klasse
-
hallo,
ich hab da ein kleines probelm, ich möchte eine klasse in zwei unterschiedlichen funktionen verwenden.klasse *name= new klasse(übergabe);
wie kann ich jetzt in der andern funktion darauf zugreifen?
die klasse übergeordnet erstellen möcht ich eigentlich nicht weil ich in der 1. funktion erst die übergabe bekomme..
habt ihr ne idee?
-
kasse *p=NULL; void funktionA(übergabe){ p= new klasse(übergabe); } void funktionB(){ if(p==NULL) return; p->...... //Mit klasse arbeiten!! }meinst du sowas?
-
Du willst keine Klasse, sonder die Instanz einer Klasse verwenden

Warum übergibst du nicht einfach eine Referenz an die Funktion per Parameter?void f(CMyClass& referenz) { ... }
-
ok, zeiger auf die klasse...
und wenn ich jetzt aber mehr klassen verwenden möchte?
nein ich denke ich möchte schon die komplette klasse nutzen.
die einfachts möglichkeit, die überall neu zu erstellen geht nicht weil der destruktor mir die sachen löscht die ich noch verwenden möchte.
ne andere möglichkeit wäre natürlich die daten immer wieder zu übergeben...

-
Eine Klasse ist nur die Beschreibung der Methoden und Elemente. Um damit arbeiten zu können, benötigst du eine konkrete Instanz dieser Klasse (mit klasse *name= new klasse(übergabe);hast du z.B. so eine Instanz angelegt). Und wenn du diese Instanz in anderen Funktionen benötigst, kannst du sie entweder global unterbringen (siehe Boris' Code) oder als Parameter bzw. Rückgabewert zwischen den Funktionen herumreichen.