fork download
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4.  
  5. int g_tab = 1;
  6. struct X {
  7. int tab;
  8. const char* name;
  9. X(const char* name) : name(name), tab(g_tab++) {
  10. cout << string(tab, '\t') << name << " : ctor" << endl;
  11. }
  12. ~X() {
  13. cout << string(tab, '\t') << name << " : dtor" << endl; }
  14. };
  15.  
  16. struct Y {
  17. Y() {
  18. static X s2("s2");
  19. }
  20. };
  21.  
  22. Y y;
  23.  
  24. X g1("g1");
  25. X g2("g2");
  26.  
  27.  
  28. int main() {
  29. cout << "start!" << endl;
  30. static X s1("s1");
  31. cout << "finish!" << endl;
  32. }
  33.  
Success #stdin #stdout 0s 16064KB
stdin
Standard input is empty
stdout
	s2 : ctor
		g1 : ctor
			g2 : ctor
start!
				s1 : ctor
finish!
				s1 : dtor
			g2 : dtor
		g1 : dtor
	s2 : dtor