Advertisement
Guest User

Untitled

a guest
May 21st, 2018
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.67 KB | None | 0 0
  1. class A{
  2.     int i;
  3. public:
  4.     A(int _i=0): i(_i){
  5.         printf("A%d ", i);
  6.     }
  7.     ~A(){
  8.         printf("~A%d ", i);
  9.     }
  10. };
  11.  
  12. class B : public A{
  13.     int x;
  14.     A a;
  15. public:
  16.     B(int _x): A(1), x(_x){}
  17.     ~B(){
  18.         printf("~B%d ",x);
  19.     }
  20. };
  21.  
  22. int zad4(){
  23.     B b(5);            //  (1)
  24.     std::cout << " *[1]*  ";
  25.     A*ptr = new B(3);  //  (2)
  26.     std::cout << " *[2]*  ";
  27.     delete ptr;        //  (3)
  28.     std::cout << " *[3]*  ";
  29.     return 0;          //  (4)
  30. }
  31.  
  32. /*  A1 A0 A1 A0 ~A1 ~B5 ~A0 ~A1
  33.  
  34.     (1) Konstruktor B(5):
  35.         - Klasa B dzidziczy po A więc najpierw uruchaminy jest konstruktor A
  36.             na liście inicjalizacyjnej jest przekazany parametr 1- wypisuje A1       A1
  37.         - Konstruktor bezparametrowy A w obiektach klasy B - wypisuje A0             A0
  38.         - przypisuje x = 5 - Konstruktor B - nie wyswietla nic
  39.     (2) Tworzymy wskaśnik typu A na obiekt typu B:
  40.         - tworzenie wskaźnika nie wywołuje konstruktora A
  41.         - Konstruktor B(3):
  42.             . na liście inicjalizacyjnej konstruktor A(1) - wypisuje A1              A1
  43.             . Konstruktor bezparametrowy A w obiektachklasy B - wypisuje A0          A0
  44.             . przypisuje x = 5 - Konstruktor B - nie wyswietla nic
  45.     (3) Usuwamy wskaznik typu A:
  46.         - Desturuktor typu A z parametrem 1 nadanym przez B - wypisuje ~A1          ~A1
  47.     (4) Koniec programu:
  48.         - Destruktor B z x=5 - wypisuje B5                                          ~B5
  49.         - Destruktor A znajdujacego się w obiektach klasy B - wypisuje ~A0          ~A0
  50.         - Destruktor A z listy inicjalizacyjnej klasy B z - wypisuje ~A1            ~A1
  51. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement