1. Functions in C++ (Syntax, Return Type, etc.)
A function is a block of code designed to perform a specific task.
Functions in C++ follow this basic syntax:
returnType functionName(parameters) {
// function body
}
Return Type: Specifies the data type of the value returned by the function. Use
void
if no value is returned.Function Name: Describes what the function does.
Parameters: Input values for the function (optional).
#include <iostream>
using namespace std;
// Function to check tea temperature
int checkTeaTemperature(int temperature) {
return temperature;
}
int main() {
int temp = checkTeaTemperature(85); // Function call
cout << "The tea temperature is " << temp << "°C" << endl;
return 0;
}
2. Declaring a Function
Function declaration tells the compiler about the function’s name, return type, and parameters. It’s also called a function prototype.
The function body is defined elsewhere.
#include <iostream>
using namespace std;
// Declaring the function (prototype)
void serveChai(int cups);
int main() {
serveChai(3); // Function call
return 0;
}
// Function definition is done later
void serveChai(int cups) {
cout << "Serving " << cups << " cups of chai!" << endl;
}
3. Defining a Function
A function definition includes the full function with the body.
You must define the function after declaring it if it’s not inline.
#include <iostream>
using namespace std;
// Function definition with body
void makeChai() {
cout << "Boiling water, adding tea leaves, and serving chai!" << endl;
}
int main() {
makeChai(); // Calling the function
return 0;
}
4. Calling a Function
To execute a function, you call it by its name followed by parentheses.
If the function takes arguments, pass them inside the parentheses.
#include <iostream>
using namespace std;
// Function to brew tea
void brewChai() {
cout << "Chai is being brewed!" << endl;
}
int main() {
brewChai(); // Function call
return 0;
}
5. Function Parameters (Formal, Actual, Default Parameters)
- Formal parameters: Defined in the function signature.
- Actual parameters: Values passed during the function call.
- Default parameters: Parameters with default values if none are passed.
#include <iostream>
using namespace std;
// Function with default parameter
void serveChai(string teaType = "Masala Chai") {
cout << "Serving " << teaType << endl;
}
int main() {
serveChai(); // Uses default parameter
serveChai("Green Chai"); // Uses actual parameter
return 0;
}
6. Pass by Value
- Pass by value means the function receives a copy of the argument. Changes made inside the function do not affect the original variable.
#include <iostream>
using namespace std;
void pourChai(int cups) {
cups = cups + 1; // Modifies local copy
cout << "Poured " << cups << " cups of chai!" << endl;
}
int main() {
int chaiCups = 2;
pourChai(chaiCups); // Passing by value
cout << "Total chai cups outside function: " << chaiCups << endl;
return 0;
}
7. Pass by Reference
- Pass by reference passes the actual variable, so changes in the function affect the original variable.
#include <iostream>
using namespace std;
void refillChai(int &cups) { // Pass by reference
cups += 2;
cout << "Refilled to " << cups << " cups of chai!" << endl;
}
int main() {
int chaiCups = 3;
refillChai(chaiCups); // Passing by reference
cout << "Total chai cups now: " << chaiCups << endl;
return 0;
}
8. Scope of Variables
- Variables declared inside a function have local scope (accessible only within the function).
- Variables declared outside all functions have global scope (accessible from any function).
#include <iostream>
using namespace std;
int globalChaiStock = 100; // Global variable
void serveChai() {
int localCups = 5; // Local variable
cout << "Serving " << localCups << " cups from " << globalChaiStock << " total stock." << endl;
}
int main() {
serveChai();
cout << "Global chai stock after serving: " << globalChaiStock << endl;
return 0;
}
9. Function Overloading
- Function overloading allows multiple functions with the same name but different parameter types or numbers.
#include <iostream>
using namespace std;
// Function overloading
void brewChai(int cups) {
cout << "Brewing " << cups << " cups of chai." << endl;
}
void brewChai(string teaType) {
cout << "Brewing " << teaType << "." << endl;
}
int main() {
brewChai(3); // Calls int version
brewChai("Masala Chai"); // Calls string version
return 0;
}
10. Lambda Functions
- A lambda function is an anonymous function that can be defined inline using the
[]
syntax. - They’re useful for short, simple functions.
#include <iostream>
using namespace std;
int main(){
//lambda
[](int cups){
cout << "Preparing " << cups << " cups of tea" << endl;
}(5);
return 0;
}
Summary:
- Function Declaration & Definition: Tell the compiler about a function and define what it does.
- Calling Functions: Execute the function by passing arguments if required.
- Pass by Value/Reference: Controls whether changes affect the original value or a copy.
- Function Overloading: Allows multiple functions with the same name but different parameter lists.
- Lambda Functions: Short, inline functions used for simple tasks.
Top comments (0)