Advanced-C++/C2/Function-Overloading-And-Overriding/English

From Script | Spoken-Tutorial
Revision as of 13:33, 7 May 2013 by Ashwini (Talk | contribs)

Jump to: navigation, search

Title of script: Function Overloading and Overriding in C++

Author: Ashwini Patil

Keywords: Overloading, Overriding, Video tutorial.


Visual Cue
Narration
Slide 1 Welcome to the spoken tutorial on function Overloading in C++.
Slide 2


In this tutorial we will learn,

Function Overloading.

Function Overriding.

We will do this with the help of examples.

Slide 3


To record this tutorial, I am using

Ubuntu OS version 11.10

g++ compiler v. 4.6.1

Slide 4 Function Overloading means two or more functions can have same name.

The number of arguments and the data-type of the arguments will be different.

When a function is called it is selected based on the argument list.

Open funoverload.cpp


Let us look at an example

In this program we will perform addition operation.

I have already typed the code on the editor.

Point the cursor

overload.cpp

Note that I have saved the file with the name overload.cpp

Let me explain the code now.

Highlight

#include<iostream>

This is our header file iostream.
Highlight

using namespace std;

This is the using statement.
Highlight

int add(int a, int b, int c)


Here we have add function defined as int.

In this we have passed three arguments.


Then we perform the addition of three numbers.

Highlight


Here we overload the function add.

It is declared as float.

We pass two arguments.

Then we perform the addition of two numbers.

Highlight

int main()

{


This is our main function.
Highlight

int add(int, int, int);

float add(float, float);

int a,b,c;

float d,e,sum;

In main function we declare the add function with different arguments.

Then we declare the variables.



Highlight

cout << "Enter three integers\n";

cin >> a >> b >>c;

sum = add(a, b, c);

cout << "Sum of integers: " << sum << "\n";


Now we accept the values from the user.

Then we call the function add with three arguments.

And store the result in variable sum.

And we print the result.

Highlight

cout << "Enter two floating point numbers\n";

cin >> d >> e;

sum = add(d, e);

cout << "Sum of floats: " << sum << "\n";

Here we call the add function with two arguments.

The result is stored in sum.

And we print the result.

Highlight

return 0;

This is the return statement
Click on Save Now Click on Save
Let us execute
Open the terminal

Ctrl, Alt and Tkeys simultaneously

Open the terminal by pressing Ctrl, Alt and T keys simultaneously
Type

g++ overload.cpp -o ovr

To execute

Type

./ovr

To compile the program type

g++ overload.cpp -o ovr

To execute type

./ovr

Highlight

Output

Here it is displayed as:

Enter three integers

I will enter as:

10

25

48

The output is displayed as:

Sum of integers is 83

Then we see:

Enter two floating point numbers

I will enter as:

4.5

8.9

Sum of floating point numbers is 13.4

Slide 5 Now we will see function overriding.

Redefining a base class function in the derived class.

The derived class function overrides the base class function.

But the arguments passed are same.

And the return-type is also same.

Let us see an example on Function Overriding

I have already typed the code on the editor.

Lets take a look.

Highlight

#include <iostream>

using namespace std;

This is our header file as iostream.

This is our std namespace.

Highlight

class arithmetic

{

protected:

int a, b, sum, sub, mul, div;

Here we have class arithmetic.

In this we have declared integer variables as protected.

Highlight

public:

void values (int x, int y)

{

a=x, b=y;

}

Then we have function values declared as public.



Highlight

virtual int operations ()

{

sum= a + b;

cout<< "Addition of two numbers is "<< sum<<"\n";

}

};

Then we have virtual function as operations.

In this we calculate the addition of two numbers.

And print the sum.

Here we close the class.

Highlight

class Subtract: public arithmetic

{

Then we have class Subtract as derived class.

This inherits the base class arithmetic.

Highlight

public:

int operations ()

{

sub= a - b;

cout<< "Difference of two numbers is "<<sub <<"\n";

}

};

In this we calculate the difference of two numbers.
Highlight

class Multiply: public arithmetic

{

public:

int operations ()

{

mul = a * b;

cout<< "Product of two numbers is "<< mul<<"\n";

}

};

Then we have another derived class as Multiply.

This also inherits class arithmetic.

In this we calculate the product of two numbers.

Highlight

class Divide: public arithmetic

{

public:

int operations ()

{

div = a / b;

cout<< "Division of two numbers is "<< div<<"\n";

}

};

And here we have class Divide this also inherits the base class arithmetic.

In this we calculate the division of two numbers.

Highlight

int main()

{

arithmetic *arith, p;

Subtract subt;

Multiply mult;

Divide divd;

This is our main function.

In this we create an object of class arithmetic as p.

arith is the pointer to the class arithmetic.

Then we have subt object of class Subtract.

mult object of class Multiply.

And divd object of class Divide.

Highlight

arith=&p;

arith->values(30,12);

arith->operations();

p is set to the address of arith.

Here we pass arguments as 30 and 12 in function values.

Then we call function operations.

Highlight

arith=&subt;

arith->values(42,5);

arith->operations();

Here we set subt to the address of arith.

Then we pass 42 and 5 as arguments.

Again we call function operations.

Highlight

arith=&mult;

arith->values(6,5);

arith->operations();


Now we set mult to the address of arith.

And pass arguments as 6 and 5.

Now we call function operations.

Highlight

arith=&divd;

arith->values(6,3);

arith->operations();

Then we set divd to the address of arith and pass arguments as 6 and 3.

Now we call function operations.

Highlight

return 0;

}

This is our return statement.

Now let us execute the program.

On the terminal


g++ override.cpp -o over2

./over2

Come back to our terminal.

To execute type:

g++ override.cpp -o over2

./over2

Highlight

The output

The output is displayed as:

Addition of two numbers is 42

Difference of two numbers is 37

Product of two numbers is 30

Division of two numbers is 2

On the slides Let us go back to our slides.
Slide 6 Now we will see the difference of overloading and overriding.

Overloading can occurs without inheritance.

Overriding occurs when one class is inherited from another.

In overloading the arguments and the return-type must differ.

In overriding the arguments and the return type must be same.

In overloading the function name is same.

But it behaves differently depending on the arguments passed to them.

In overriding the function name, arguments passed and the return type is same.

Derived class function can perform different operations from the base class.

This brings us to the end of this tutorial.
Slide 7

Summary

In this tutorial we have seen

Function overloading.

eg. int add(int, int, int);

float add(float, float);

Function Overriding.

eg. virtual int operations ()

int operations ()

Difference between both.

Slide 8

Assignment

As an assignment

Write a program that will calculate the area of rectangle, square and circle.

Using function overloading.

Slide 9

About the Spoken Tutorial Project

Watch the video available at the link shown

It summarizes the Spoken Tutorial project

If you do not have good bandwidth, you can download and watch it

Slide 10

Spoken Tutorial Workshops

The Spoken Tutorial Project Team

Conducts workshops using spoken tutorials

Gives certificates to those who pass an online test

For more details, please write to,

contact@spoken-tutorial.org

Slide Number 11


Acknowledgement

Spoken Tutorial Project is a part of the Talk to a Teacher project

It is supported by the National Mission on Education through ICT, MHRD, Government of India

More information on this Mission is available at: http://spoken-tutorial.org\NMEICT-Intro

This is Ashwini Patil from IIT Bombay signing off

Thank You for joining.

Contributors and Content Editors

Ashwini