Forum: PC-Programmierung [C++] auf Instanz prüfen


von ISP-Takt (Gast)


Lesenswert?

Hallo,

kann man in C++ prüfen ob eine Instanz vorhanden ist bzw. noch nicht 
freigegeben wurde sofern man den this-Pointer der Instanz hat?

Im speziellen geht es um eine Art bind-Funktion die den Aufruf über den
Funktionspointer nur dann machen soll, sofern die Instanz noch 
existiert.

Grüße
ISP-Takt

von Peter II (Gast)


Lesenswert?

ISP-Takt schrieb:
> kann man in C++ prüfen ob eine Instanz vorhanden ist bzw. noch nicht
> freigegeben wurde sofern man den this-Pointer der Instanz hat?

nein einem Zeiger sieht man nicht an ob er auf einen Freigegeben bereich 
oder nicht zeit.

von g457 (Gast)


Lesenswert?

> Im speziellen geht es um eine Art bind-Funktion die den Aufruf über den
> Funktionspointer nur dann machen soll, sofern die Instanz noch
> existiert.

pimpl

HTH

von ISP-Takt (Gast)


Lesenswert?

Hallo,

danke für die Antworten pimpl verstehe ich noch nicht ganz werde das 
noch überdenken.

Eine andere Frage die mir noch eingefallen ist:

Wenn der Destruktor durch ein delete aufgerufen wird, ist das wie ein 
normaler Methodenaufruf?

D.h. wenn ich eine Klasse in einem Thread delete kann ich
theoretisch im Destruktor in einer endlichen Schleife warten bis alle 
Calls auf die Klasse beendet sind? Oder sind beim Aufruf des Destruktors 
die private/public Werte schon gelöscht?

Grüße
ISP-Takt

von Peter II (Gast)


Lesenswert?

ISP-Takt schrieb:
> D.h. wenn ich eine Klasse in einem Thread delete kann ich
> theoretisch im Destruktor in einer endlichen Schleife warten bis alle
> Calls auf die Klasse beendet sind? Oder sind beim Aufruf des Destruktors
> die private/public Werte schon gelöscht?

ja dafür ist er ja da. Währe ja ziemmlich sinnlos wenn man dort nicht 
auf Member variablen zugreifen kann.

von Hans-Georg L. (h-g-l)


Lesenswert?

Nimm einen smartpointer dann lebt das objekt solange bis alle pointer 
darauf freigegeben sind.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.