fork download
  1. #include<iostream>
  2. #include<utility>
  3.  
  4. class foo
  5. {
  6. public:
  7. foo();
  8. ~foo();
  9.  
  10. foo(const foo& copy);
  11.  
  12. foo& operator=(const foo& rhs);
  13.  
  14. private:
  15. void swap(foo left, foo right);
  16.  
  17. int* a;
  18. int b;
  19. double c;
  20.  
  21. };
  22.  
  23. foo::foo(const foo& copy)
  24. {
  25. a = new int;
  26. a = *copy.a;
  27. b = copy.b;
  28. c = copy.c;
  29. }
  30.  
  31. foo& foo::operator=(const foo& rhs)
  32. {
  33.  
  34. std::swap(rhs, *this);
  35.  
  36. return *this;
  37. }
  38.  
  39. void foo::swap(foo left, foo right)
  40. {
  41. using std::swap;
  42.  
  43. swap(left.a, right.a);
  44. swap(left.b, right.b);
  45. swap(left.c, right.c);
  46. }
  47.  
  48. int main()
  49. {
  50.  
  51. foo f;
  52.  
  53. return 0;
  54. }
Not running #stdin #stdout 0s 0KB
stdin
Standard input is empty
stdout
Standard output is empty