CPP

Lecture 5 : Functions

What is Function?

Definition, Declaration and Call


#incude<iostream> //declaration of cin and cout
using namespace std;

int main()
{
	void fun(); //local function declaration
	cout << "You are in main";
	fun(); //function call
	
	return 0;
}

void fun() //function definition
{
	cout << "You are in fun function";
}

Declaration

Ways to define a function

Formal and Actual Arguments

#include <iostream>
using namespace std;

int sum(int, int);

int main()
{
	int a=5, b=6;
	int s= sum(a,b); //here a and b are actual arguments
	cout << "Sum is " << s;
	
	return 0;
}

int sum(int x, int y) // here x and y are formal arguments
{
	return x+y;
}

Types of Formal Arguments

#include<iostream>
using namespace std;

int sum(int, int)

int main()
{
	int a, b;
	cout << "Enter two Numbers : ";
	cin >> a >> b;

	int s = sum(a,b);

	cout << "Result is : " << s;

	return 0;
}

int sum(int x, int y)
{
	return x+y;
}


#include<iostream>
using namespace std;

int sum(int*, int*)

int main()
{
	int a, b;
	cout << "Enter two Numbers : ";
	cin >> a >> b;
	
	int s = sum(&a, &b);

	cout << "Result : " << s;
	
	return 0;
}

int sum(int *p, int *q)
{
	return *p+*q;
}

#include <iostream>
using namespace std;

int sum (int &, int &);

int main()
{
	int a, b;
	cout << "Enter two Numbers : ";
	cin >> a >> b;

	int s = sum(a,b);

	cout << "Result :" << s;

	return 0;
}

int sum (int &y, int &z)
{
	return y+z;
}

Benefits of function

Function is time consuming

Inline Function

Inline is a request


#include <iostream>
using namespace std;

inline void fun(); // function Declaration

int main()
{
	cout << "You are in main";
	fun(); // function call
}

void fun() // function Definition
{
	cout << "You are in Fun";
}

Default Arguments

#include <iostream>
using nnamespace std;

int add(int, int, int=0) // default argument

int main()
{
	int a, b;
	cout << "Enter two Numbers : ";
	cin >> a >> b;
	cout << "Sum is " << add(a,b); // here we have only passed 2 arguments but it will not throw an errow since we have already assigned default argument to the third one
	
	int c;
	cout << "Enter three Numbers : ";
	cin >> a >> b >> c;
	cout << "Sum is " << add(a, b, c);

	return 0;
}

int add(int x, int y, int z)
{
	return x+y+z;
}

Function Overloading

#include <iostream>
using namespace std;

int area(int, int);
float area(int);

int main()
{
	int r;
	cout << "Enter radius of a circle : ";
	cin >> r;
	
	float A = area(r);
	cout << "\nArea off Circle is " << A;
	
	int l, b, a;
	cout << "\nEnter length and breadth of rectangle : ";
	cin >> l >> b;
	a = area(l,b);
	cout << "\n Area of Rectangle is : " << a;

	return 0;
}

float area(int R)
{
	return 3.14*R*R;
}

int area(int L, int B)
{
	return L*B;
}

How Function Overloading is Resolved?