fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. struct Medium {
  5. Medium() { std::cout << "Medium ctor\n"; }
  6. Medium(const Medium& rhs) { std::cout << "Medium copy ctor\n"; }
  7. Medium& operator=(const Medium& rhs) { std::cout << "Medium operator=\n"; }
  8. };
  9.  
  10. class Wrapper {
  11. Medium medium;
  12. public:
  13. void set_state(Medium medium)
  14. {
  15. this->medium = medium;
  16. }
  17. };
  18.  
  19. int main() {
  20. std::cout << "*Creating w\n";
  21. Wrapper w;
  22. std::cout << "*creating Medium\n";
  23. Medium m;
  24. std::cout << "*calling set_state\n";
  25. w.set_state(m);
  26. std::cout << "*calling set_State(Medium())\n";
  27. w.set_state(Medium());
  28. }
Success #stdin #stdout 0s 3460KB
stdin
Standard input is empty
stdout
*Creating w
Medium ctor
*creating Medium
Medium ctor
*calling set_state
Medium copy ctor
Medium operator=
*calling set_State(Medium())
Medium ctor
Medium operator=