Chapter 7C++ Tutorial~2 min read
Functions in C++
Functions — Reusable Code
C++ मध्ये functions C सारखेच आहेत + extra features: function overloading (same name, different params), default parameters, inline functions, references as parameters.
Function Basics
Function definition, declaration, call
cpp
#include <iostream>
using namespace std;
// Function prototype — main() च्या आधी
int add(int a, int b);
void greet(string name);
double average(int arr[], int size);
int main() {
greet("Rahul");
cout << "Sum: " << add(10, 20) << endl; // 30
int marks[] = {85, 90, 78, 92};
cout << "Avg: " << average(marks, 4) << endl; // 86.25
return 0;
}
// Function definitions
void greet(string name) {
cout << "नमस्कार, " << name << "!" << endl;
}
int add(int a, int b) {
return a + b;
}
double average(int arr[], int size) {
int sum = 0;
for (int i = 0; i < size; i++) sum += arr[i];
return (double)sum / size;
}Default Parameters + Overloading
Default args and function overloading
cpp
// Default parameters — शेवटी ठेवावेत
void greet(string name, string lang = "Marathi") {
cout << "नमस्कार " << name << "! Language: " << lang << endl;
}
// Function overloading — same name, different signatures
int multiply(int a, int b) { return a * b; }
double multiply(double a, double b) { return a * b; }
int multiply(int a, int b, int c) { return a * b * c; }
int main() {
greet("Rahul"); // Default — Marathi
greet("Priya", "Hindi"); // Override
cout << multiply(3, 4) << endl; // 12 — int version
cout << multiply(2.5, 3.0) << endl; // 7.5 — double version
cout << multiply(2, 3, 4) << endl; // 24 — 3 param version
return 0;
}Pass by Reference
References — original बदलतो!
cpp
// Pass by value — copy, original unchanged
void doubleVal(int x) { x *= 2; }
// Pass by reference — & — original बदलतो
void doubleRef(int &x) { x *= 2; }
// Pass by pointer — C style
void doublePtr(int *x) { *x *= 2; }
void swap(int &a, int &b) {
int temp = a;
a = b;
b = temp;
}
int main() {
int n = 5;
doubleVal(n);
cout << n << endl; // 5 — unchanged
doubleRef(n);
cout << n << endl; // 10 — changed!
int x = 3, y = 7;
swap(x, y);
cout << x << " " << y << endl; // 7 3
return 0;
}Recursion
Recursive functions
cpp
int factorial(int n) {
if (n <= 1) return 1; // base case
return n * factorial(n - 1); // recursive call
}
int fibonacci(int n) {
if (n <= 1) return n;
return fibonacci(n-1) + fibonacci(n-2);
}
cout << "5! = " << factorial(5) << endl; // 120
cout << "fib(7) = " << fibonacci(7) << endl; // 13✅ Key Points — लक्षात ठेवा
- ▸Function prototype — main() च्या आधी declare करा
- ▸Default parameters — function signature च्या शेवटी
- ▸Overloading — same name, different param types/count
- ▸int &ref — reference parameter, original बदलतो
- ▸Recursion — base case mandatory!
0/11 chapters पूर्ण