LambdaExpr_

Untitled

Feb 19th, 2025
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.00 KB | None | 0 0
  1. ❯ nano test.cpp
  2. ❯ g++ test.cpp
  3. ❯ ./a.out
  4. Main Begins
  5. Widget Number 0 Constructs
  6. Widget Number 1 Constructs
  7. Function Returns
  8. Widget Number 1 Destructs
  9. Widget Number 0 Destructs
  10. Widget Number 2 Constructs
  11. Widget Number 3 Constructs
  12. Function Returns
  13. Widget Number 3 Destructs
  14. Widget Number 2 Destructs
  15. Main Ends
  16. ❯ cat test.cpp
  17. #include <iostream>
  18.  
  19. class Widget {
  20. private:
  21. int nubmer;
  22. static int current_number;
  23. public:
  24. int number;
  25. Widget(): number(current_number++) {
  26. std::cout << "Widget Number " << number << " Constructs" << std::endl;
  27. }
  28. ~Widget() {
  29. std::cout << "Widget Number " << number << " Destructs" << std::endl;
  30. }
  31. };
  32.  
  33. int Widget::current_number = 0;
  34.  
  35. int ret() {
  36. std::cout << "Function Returns" << std::endl;
  37. return 0;
  38. }
  39.  
  40. int func(const Widget& w = Widget{}) {
  41. Widget w_local{};
  42. return ret();
  43. }
  44.  
  45. int main() {
  46. std::cout << "Main Begins" << std::endl;
  47. func();
  48. func();
  49. std::cout << "Main Ends" << std::endl;
  50. return 0;
  51. }
  52.  
Advertisement
Add Comment
Please, Sign In to add comment