fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int x = 42;
  5.  
  6. int g(int arg) {
  7. cout << "g was called with argument " << arg << endl;
  8. return arg;
  9. }
  10.  
  11. void f(int arg = g(x)) {
  12. cout << "f was called with argument " << arg << endl;
  13. }
  14.  
  15. int main() {
  16. f(); // g is called the first time
  17. f(); // g is called again
  18. f(23); // g isn't called because an argument was provided
  19. x = 13;
  20. f(); // g is called again, taking the changed value of x into account
  21. {
  22. int x = 7;
  23. f(); // g is called again, the local x is ignored because it wasn't in
  24. // scope when f was defined
  25. }
  26. return 0;
  27. }
Success #stdin #stdout 0s 4672KB
stdin
Standard input is empty
stdout
g was called with argument 42
f was called with argument 42
g was called with argument 42
f was called with argument 42
f was called with argument 23
g was called with argument 13
f was called with argument 13
g was called with argument 13
f was called with argument 13