kanagara

shared_ptr

Feb 21st, 2021 (edited)
438
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.78 KB | None | 0 0
  1. #include <iostream>
  2. #include <memory>
  3.  
  4. using namespace std;
  5.  
  6. class Objekat
  7. {
  8. public:
  9.     Objekat() { cout << "Objekat kreiran\n"; }
  10.     ~Objekat() { cout << "Objekat unisten\n"; }
  11. };
  12.  
  13. int main()
  14. {
  15.     // kreiramo objekat
  16.     Objekat *obj = new Objekat;
  17.     // pravimo shared pointer za njega
  18.     shared_ptr<Objekat> ptr1(obj);
  19.    
  20.     {
  21.         shared_ptr<Objekat> ptr2(ptr1); // konstruktor kopije
  22.         //Na ekranu ce se ispisati 2 jer sad 2 pokazivaca pokazuju na njega.
  23.         cout << ptr1.use_count() << endl;
  24.     }
  25.     //Na ekranu ce se ipsisati 1 jer je ptr2 unisten i njegova referenca na obj vise ne postoji
  26.     cout << ptr1.use_count() << endl;
  27.  
  28.     cout << "Kraj programa\n";
  29.  
  30.     return 0;
  31. } //Tek ovde ce se pozvati ~Objekat zato što smo izašli iz scope-a, i više niko ne pokazuje na obj.
Add Comment
Please, Sign In to add comment