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

Despre limbajul de programare C++ si biblioteca standard STL (forum moderat)
Post Reply
User avatar
zlatomir
Membru++
Membru++
Posts: 282
Joined: 04 Jul 2009, 23:59
Location: Arad
Contact:

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

Post by zlatomir » 27 Nov 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

Code: Select all

#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

Code: Select all

A::A()  B::B()  C::C()
C::~C() B::~B() A::~A()
Vezi si urmatorul articol
Next FAQ >>
Last edited by Ovidiu Cucu on 19 Dec 2009, 20:06, edited 3 times in total.
Reason: Just few cosmetics.



Post Reply