Advertisement
Guest User

muistivuototesti

a guest
Sep 21st, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.76 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4.  
  5. string stra = "1";
  6. string strb = "2";
  7.  
  8. class A
  9. {
  10. public:
  11.     string s;
  12.     void* rawPtr = 0;
  13.     A()
  14.     {
  15.         s = stra == "" ? strb : stra;
  16.         stra = "";
  17.         cout << "constructor " << s << endl;
  18.         rawPtr = malloc(1);
  19.     }
  20.     ~A()
  21.     {
  22.         if(rawPtr)
  23.             free(rawPtr);
  24.         cout << "destructor " << s << ", ptr: " << (void*)s.data() << " = " << s.data() << endl;
  25.     }
  26.  
  27. #if 1 // FLIP ME
  28.     A& operator=(A& o)
  29.     {
  30.         free(rawPtr);
  31.         rawPtr = o.rawPtr;
  32.         o.rawPtr = 0;
  33.         cout << "assignment to: " << s << ", other is: " << o.s << endl;
  34.         return *this;
  35.     }
  36. #endif
  37. };
  38.  
  39. class B
  40. {
  41. public:
  42.     A a;
  43.     string ssss;
  44. };
  45.  
  46. void test()
  47. {
  48.     B b;
  49.     b = B();
  50. }
  51.  
  52. int main()
  53. {
  54.     test();
  55.     system("pause");
  56.     return 0;
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement