Witam.
dzisiaj w pewnym kodzie znalazłem ciekawe wyrażenie...
....
void Foo::Destroy()
{
delete this;
}
...
Na początku bardzo się zdziwiłem skąd takie wyrażenie. Pogóglałem odrobinę, popytałem trochę i juz wiem, że jest legalne :) Wiem już też (co jest dość logiczne), że po delete this nie można korzystać z żadnych memberów clasy, gdyż ich już najpewniej po prostu nie ma. Także nie powinno się tego wyrażenia używać w destruktorach, gdyz to spowoduje najpewniej nieskończoną pętlę, lub od razu crash...
Pytania mam do was dwa.
Czy znacie jakaś książkę lub artykół, gdzie ten przypadek jest opisywany? Jakie może jeszcze niesć ze sobą skutki używanie takiego wyrażenia..? Na co trzeba wówczas szczególnie uważać
oraz drugi, to co w sumie bardziej mnie interesuję...
Czy sami potraficie wskazać zastosowania takiego wyrażenia. Czyli kiedy np nie można się bez tego obyć?
Pozdrawiam!