Advertisement
Guest User

Untitled

a guest
Apr 3rd, 2020
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.42 KB | None | 0 0
  1. template <typename T>
  2. class A {
  3. private:
  4.     int* i;
  5.     T* p;
  6.     double d;
  7.  
  8. public:
  9.     A() : i(), p(new T), d() {}
  10.  
  11.     ~A() {}
  12.  
  13.     A(const A& a) : i(new int(*a.i)), d(a.d) {
  14.         try {
  15.             p = new T(*a.p);
  16.         }
  17.         catch(...) {
  18.             delete i;
  19.             throw;
  20.         }
  21.     }
  22.  
  23.     A& operator=(const A& a) {
  24.         d = a.d;
  25.         *i = *a.i;
  26.         *p = *a.p;
  27.     }
  28.  
  29.     A(A&& a) : A(a){
  30.         delete a.i;
  31.         delete a.p;
  32.     }
  33.    
  34.     A& operator=(A&& a){
  35.         A(a);
  36.     }
  37. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement