Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

pozivanje destruktora

[es] :: C/C++ programiranje :: pozivanje destruktora

[ Pregleda: 1533 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

dontoo

Član broj: 249815
Poruke: 40
*.adsl.net.t-com.hr.



+1 Profil

icon pozivanje destruktora08.03.2010. u 10:23 - pre 171 meseci
Ako sam ja definirao destruktor u klasi koji uništava neke COM objekte, dali ja trebam eksplicitno i pozvati destruktor ili će se on sam pozvati kad program završi?
Dali je ovakav kod dolje u redu što se tiče destruktora, to jest program će sam pozvati destruktor kad završi sa klasom?
Code:

class D3D
{
public:
    ~D3D();
    int Run();
    HRESULT InitMainWindow( HINSTANCE, int );
    HRESULT InitDevice();
    void OnResize();
    void Render();
    void UpdateScene();
};
//////////////////////////////////////////////////////////////
D3D::~D3D()
{
    if( g_pd3dDevice ) g_pd3dDevice->ClearState();
    if( g_pRenderTargetView ) g_pRenderTargetView->Release();
    if( g_pSwapChain ) g_pSwapChain->Release();
    if( g_pd3dDevice ) g_pd3dDevice->Release();
}
 
Odgovor na temu

deerbeer
Beograd

Član broj: 174418
Poruke: 1189
*.adsl-1.sezampro.yu.



+395 Profil

icon Re: pozivanje destruktora08.03.2010. u 10:35 - pre 171 meseci
Ako si instancirao klasu D3D sa :
Code:
 
D3D *p = new D3D(); 

Moras negde u kodu imati
Code:
 
delete p ; 

koji ce automatski pozvati destruktor .
A ako instanciras
Code:
 
D3D p ;  

automatski se poziva destruktor cim p promenjljiva izadje iz opsega (bilo koja funckija , ili glavna main f-ija) .


Viva lollapalooza
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
212.200.65.*

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: pozivanje destruktora08.03.2010. u 11:26 - pre 171 meseci
^
Kao dodatak ovome gore, napomena da često treba obratiti pažnju i na redosled čišćenja/oslobađanja resursa u destruktoru, jer neretko postoji međuzavisnost. Obrunt redosled od kreiranje je najčešće pravi recept. Verujem da je ovde u konkretnom primeru Ok.
 
Odgovor na temu

[es] :: C/C++ programiranje :: pozivanje destruktora

[ Pregleda: 1533 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.