fork(1) download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class Foo {
  5. int* data;
  6. public:
  7. Foo() : data(new int[1000]) {};
  8.  
  9. Foo& operator= (Foo&){
  10. cout << "Foo&" << endl;
  11. return *this;
  12. }
  13.  
  14. Foo& operator= (Foo&& foo){
  15. if (this == &foo) cout << "bad parameter";
  16. cout << "Foo&&" << endl;
  17. data = foo.data;
  18. foo.data = 0;
  19. return *this;
  20. }
  21.  
  22. ~Foo(){
  23. delete[] data;
  24. }
  25. };
  26.  
  27. int main(){
  28. Foo foo1, foo2;
  29. foo1 = Foo();
  30.  
  31. Foo* ptr = &foo2;
  32.  
  33. foo2 = foo2;
  34.  
  35. foo2 = *(ptr+0);
  36.  
  37. return 0;
  38. }
  39.  
Success #stdin #stdout 0s 3412KB
stdin
Standard input is empty
stdout
Foo&&
Foo&
Foo&