[C++] In ce ordine se apeleaza constructorii/destructorii?

C++ FAQs, tips & tricks (forum moderat)

[C++] In ce ordine se apeleaza constructorii/destructorii?

Mesajde zlatomir » 27 Noi 2009, 01:02

Intrebare
In ce ordine se apeleaza constructorii, respectiv destructorii intr-o ierarhie de clase?

Raspuns
  • intai constructorul din clasa de baza apoi cel din clasa derivata.
  • intai destructorul din clasa derivata apoi cel din clasa de baza (ordine inversa celei din cazul constructorilor).

Exemplu
Cod: Selectaţi tot
#include <iostream>

class A
{
public:
   A()  {std::cout << "A::A()  ";}
   ~A() {std::cout << "A::~A() ";}
};

class B : public A
{
public:
   B()  {std::cout << "B::B()  ";}
   ~B() {std::cout << "B::~B() ";}
};

class C : public B
{
public:
   C()  {std::cout << "C::C()  " << std::endl;}
   ~C() {std::cout << "C::~C() ";}
};

void TestIt()
{
   C c;
}

int main()
{
   TestIt();
   return 0;
}

Programul de mai sus afiseaza
Cod: Selectaţi tot
A::A()  B::B()  C::C()
C::~C() B::~B() A::~A()


Vezi si urmatorul articol


Next FAQ >>
Ultima oară modificat de Ovidiu Cucu pe 19 Dec 2009, 20:06, modificat de 3 ori în total.
Motiv: Just few cosmetics.
Avatar utilizator
zlatomir
Membru
Membru
 
Mesaje: 175
Membru din: 04 Iul 2009, 23:59
Localitate: Arad->Felnac

Înapoi la C++

Cine este conectat

Utilizatorii ce navighează pe acest forum: Niciun utilizator înregistrat şi 1 vizitator