fork download
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. class Test
  6. {
  7. private:
  8. int *a;
  9. int size;
  10. public:
  11. Test(int value);
  12. // Test (const Test &obj);
  13. Test& operator=(const Test &obj);
  14. int getSize()
  15. {
  16. return *a;
  17. }
  18. void setValue(int val)
  19. {
  20. *a = val;
  21. }
  22. };
  23.  
  24. /*Test::Test (const Test &obj)
  25. {
  26.   size = obj.size;
  27.  
  28. }*/
  29.  
  30. Test& Test::operator=(const Test &obj)
  31. {
  32. if (this == &obj)
  33. return *this;
  34.  
  35. size = obj.size;
  36.  
  37. *a = *(obj.a);
  38. return *this;
  39. }
  40.  
  41. Test::Test(int value)
  42. {
  43. a = NULL;
  44. size = value;
  45. cout << "size is " << size << "\n";
  46. a = new int(size);
  47. if (a == NULL)
  48. cout << "Memory allocation failed\n";
  49. }
  50.  
  51. int main()
  52. {
  53. Test t1(5);
  54. {
  55. Test t2(6);
  56. t2 = t1;
  57. t2.setValue(12);
  58. cout << "t2 size is " << t2.getSize() <<"\n";
  59. }
  60. cout << "t1 size is " << t1.getSize() << "\n";
  61.  
  62. return 0;
  63. }
Success #stdin #stdout 0s 3456KB
stdin
Standard input is empty
stdout
size is 5
size is 6
t2 size is 12
t1 size is 5