fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class B {
  5. public:
  6. B() {
  7. cout << "B ctor" << endl;
  8. }
  9. ~B() {
  10. cout << "B dtor" << endl;
  11. }
  12. };
  13.  
  14. class A {
  15. public:
  16. A(B b = B()) {
  17. cout << "A ctor" << endl;
  18. }
  19. ~A() {
  20. cout << "A dtor" << endl;
  21. }
  22. };
  23.  
  24. void doTemp() {
  25. A();
  26. }
  27.  
  28. void doStack() {
  29. A a;
  30. }
  31.  
  32. int main() {
  33. cout << "temporary:" << endl;
  34. doTemp();
  35. cout << "stack:" << endl;
  36. doStack();
  37.  
  38. return 0;
  39. }
Success #stdin #stdout 0s 3416KB
stdin
Standard input is empty
stdout
temporary:
B ctor
A ctor
A dtor
B dtor
stack:
B ctor
A ctor
B dtor
A dtor