fork(1) download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class XD
  5. {
  6. public:
  7. XD():ptr(new int) { cout<< "XD: " << this <<endl;}
  8. //XD(const XD&) { cout<< "copy XD" <<endl;}
  9. //XD(XD&&) { cout<< "move XD" <<endl;}
  10. ~XD() { cout<< "~XD: " << this <<endl; delete ptr;}
  11. int* ptr;
  12. };
  13.  
  14.  
  15. class Bar
  16. {
  17. public:
  18. Bar(){cout<<"Bar"<<endl;}
  19. ~Bar(){cout<<"~Bar"<<endl;}
  20. };
  21. class Foo
  22. {
  23. public:
  24. Foo(XD xd = XD()){ cout <<"Foo"<<endl; }
  25. //Foo(&& xd = XD()){ cout <<"Foo"<<endl; }
  26. ~Foo(){cout<<"~Foo"<<endl;}
  27. Bar b;
  28. };
  29. int main() {
  30. {
  31. Foo f;
  32. cout<<"============"<<endl;
  33. }
  34. return 0;
  35. }
Success #stdin #stdout 0s 15240KB
stdin
Standard input is empty
stdout
XD: 0x7ffe5f1c1fe0
Bar
Foo
~XD: 0x7ffe5f1c1fe0
============
~Foo
~Bar