Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <memory>
- #include <string>
- using namespace std;
- struct Actor
- {
- Actor(string name): name_(move(name))
- { cout << name_ << " was born!" << endl; }
- ~Actor()
- { cout << name_ << " died!" << endl; }
- void DoWork()
- { cout << name_ << " did some job!" << endl; }
- string name_;
- };
- void run (Actor* ptr)
- {
- if(ptr)
- {
- ptr->DoWork();
- }
- else
- {
- cout << "An actor was expected" << endl;
- }
- }
- int main()
- {
- // shared_ptr <Actor> ptr = make_shared<Actor>();
- // run(ptr.get());
- // auto ptr2 = ptr;
- // run(ptr2.get());
- // run(ptr.get());
- // auto ptr1 = make_unique <Actor>("Alice");
- // auto ptr2 = make_unique <Actor>("Boris");
- cout << "------------------------------------" << endl;
- ptr1 = move(ptr2);
- run(ptr1.get());
- run(ptr2.get());
- cout << "------------------------------------" << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement