Advertisement
Guest User

Untitled

a guest
Jun 26th, 2018
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.25 KB | None | 0 0
  1. #include <vector>
  2. #include<iostream>
  3.  
  4. using namespace std;
  5.  
  6. int ctor = 0;
  7. int dtor = 0;
  8.  
  9. struct test_vector {
  10.     char const* _name;
  11.     test_vector()
  12.         : _name{ "" }
  13.     {
  14.         std::cout << "Default constructor " << _name << std::endl;
  15.     }
  16.     explicit test_vector(const char* name)
  17.         : _name{ name }
  18.     {
  19.         std::cout << "Explicit constructor " << _name << std::endl;
  20.     }
  21.  
  22.  
  23.     test_vector(test_vector& oth)
  24.         : _name{ oth._name }
  25.     {
  26.         std::cout << "Copy constructor " << _name << std::endl;
  27.     }
  28.     test_vector(test_vector&& oth)
  29.         : _name{ oth._name }
  30.     {
  31.         std::cout << "Move constructor " << _name << std::endl;
  32.         oth._name = "null";
  33.     }
  34.     ~test_vector()
  35.     {
  36.         std::cout << "Destructor " << _name << std::endl;
  37.     }
  38.     auto operator=(const test_vector& oth) -> test_vector &
  39.     {
  40.         _name = oth._name;
  41.         std::cout << "copy assignment " << _name << std::endl;
  42.         return *this;
  43.     }
  44.     auto operator=(test_vector&& oth) -> test_vector &
  45.     {
  46.         _name = oth._name;
  47.         oth._name = "null";
  48.         std::cout << "move assignment " << _name << std::endl;
  49.         return *this;
  50.     }
  51. };
  52. auto main() -> int
  53. {
  54.     auto v = std::vector<test_vector>{};
  55.     v.emplace_back("new1");
  56.     v.emplace_back("new2");
  57.     v.emplace_back("new3");
  58.     v.emplace_back("new4");
  59.     v.emplace_back("new5");
  60.     return 0;
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement