![]() |
C++:Was ist der Unterschied: void func(**a)-void func(*(&
Hi,
Ich weiss ja was folgende Deklaration bedeutet und wie man es benutzt:
Code:
In Delphi wäre es
void func(myClass **instance)
Delphi-Quellcode:
In diesem Fall könnte man wikrungsvoll das Objekt innerhalb der Funktion löschen (dessen Destructor aufrufen) und die Variable instance auf nil/NULL setzten. z.B.:
procedure func(var instance: myClass);
Code:
Wie würde ich dasselbe machen, wenn die Funktion so aussehen würde:
void func(myClass **instance)
{ delete *instance; *instance = NULL; }
Code:
void func(myClass *(&instance))
{ } |
Re: C++:Was ist der Unterschied: void func(**a)-void func(*(
ich würde sagen genau so. allerdings würde ich vorher mal debuggen ob my class bei beiden Varianten den gleichen wert hat.
Ich könnte mir auch vorstellen das bes bei Variante 2 nicht geht weil: &instance gibt eventuell die Adresse von Instance auf dem Stack zurück. |
Re: C++:Was ist der Unterschied: void func(**a)-void func(*(
Suchst du nicht eher
Code:
?
void func(myClass*& instance)
{ delete instance; instance = 0; } So wird eine Referenz auf einen Zeiger übergeben. Halte ich zwar nicht unbedingt für gängige Praxis (man benutzt eigentlich entweder Zeiger oder Referenzen, eher selten beides), aber sollte so funktionieren. Mein Compiler akzeptiert das jedenfalls. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz