diff options
Diffstat (limited to 'CPP/Basics/functions.cpp')
| -rw-r--r-- | CPP/Basics/functions.cpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/CPP/Basics/functions.cpp b/CPP/Basics/functions.cpp new file mode 100644 index 0000000..5a26992 --- /dev/null +++ b/CPP/Basics/functions.cpp @@ -0,0 +1,41 @@ +#include <iostream> + +// C++ can pass arguments are references + +// by value +int square(int x) +{ + return x * x; +} + +// swap by value (passing pointers) +void swap(int *x, int *y) +{ + int temp = *x; + *x = *y; + *y = temp; +} + +// Swap by reference - function overload +void swap(int& x, int& y) +{ + int temp = x; + x = y; + y = temp; +} + + +int main(void) { + + int a = 9, b; + b = square(a); + std::cout << "Square of a: " << b << std::endl; + std::cout << "A: " << a << " B: " << b << std::endl; + swap(&a, &b); + std::cout << "Swapping by addr value:" << std::endl; + std::cout << "New A: " << a << " New B: " << b << std::endl; + swap(a, b); + std::cout << "Swapping by reference:" << std::endl; + std::cout << "New A: " << a << " New B: " << b << std::endl; + return 0; +} |
