Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ❯ nano test.cpp
- ❯ g++ test.cpp
- ❯ ./a.out
- Main Begins
- Widget Number 0 Constructs
- Widget Number 1 Constructs
- Function Returns
- Widget Number 1 Destructs
- Widget Number 0 Destructs
- Widget Number 2 Constructs
- Widget Number 3 Constructs
- Function Returns
- Widget Number 3 Destructs
- Widget Number 2 Destructs
- Main Ends
- ❯ cat test.cpp
- #include <iostream>
- class Widget {
- private:
- int nubmer;
- static int current_number;
- public:
- int number;
- Widget(): number(current_number++) {
- std::cout << "Widget Number " << number << " Constructs" << std::endl;
- }
- ~Widget() {
- std::cout << "Widget Number " << number << " Destructs" << std::endl;
- }
- };
- int Widget::current_number = 0;
- int ret() {
- std::cout << "Function Returns" << std::endl;
- return 0;
- }
- int func(const Widget& w = Widget{}) {
- Widget w_local{};
- return ret();
- }
- int main() {
- std::cout << "Main Begins" << std::endl;
- func();
- func();
- std::cout << "Main Ends" << std::endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment