Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <memory>
- using namespace std;
- struct Actor
- {
- Actor()
- {
- cout << "I was born!" << endl;
- }
- ~Actor()
- {
- cout << "I was deleted!" << endl;
- }
- void DoWork()
- {
- cout << "I did some job!" << endl;
- }
- };
- void run(Actor* ptr)
- {
- if (ptr)
- {
- ptr->DoWork();
- }
- else
- {
- cout << "an actor was expected :-/" << endl;
- }
- }
- int main()
- {
- shared_ptr<Actor> ptr = make_shared<Actor>();
- //shared_ptr умеет делать все тоже самое что и unique_ptr
- //его главное отличие, то что его можно копировать
- //несколько shared_ptr могут ссылаться на один и тот же объект
- run(ptr.get());
- //auto ptr2 = move(ptr);
- auto ptr2 = ptr;
- run(ptr2.get());
- run(ptr.get());
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement