Difference between revisions of "Advanced-C++/C2/Function-Overloading-And-Overriding/English"

From Script | Spoken-Tutorial
Jump to: navigation, search
 
Line 3: Line 3:
 
'''Author: '''Ashwini Patil
 
'''Author: '''Ashwini Patil
  
'''Keywords: Overloading, Overriding, Video tutorial.'''
+
'''Keywords: Overloading, Overriding, Video tutorial, C++.'''
  
  
Line 20: Line 20:
  
  
| style="background-color:#ffffff;border-top:0.25pt solid #c0c0c0;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| In this tutorial we will learn,
+
| style="background-color:#ffffff;border-top:0.25pt solid #c0c0c0;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| In this tutorial, we will learn,
  
 
'''Function Overloading.'''
 
'''Function Overloading.'''
Line 41: Line 41:
 
|-
 
|-
 
| style="background-color:#ffffff;border-top:0.25pt solid #c0c0c0;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:0.25pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| Slide 4
 
| style="background-color:#ffffff;border-top:0.25pt solid #c0c0c0;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:0.25pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| Slide 4
| style="background-color:#ffffff;border-top:0.25pt solid #c0c0c0;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| Function Overloading means two or more functions can have same name.
+
| style="background-color:#ffffff;border-top:0.25pt solid #c0c0c0;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| '''Let us start with an introduction to function overloading.'''
  
The number of arguments and the data-type of the arguments will be different.
+
'''Function Overloading''' means two or more '''functions''' can have same name.
  
When a function is called it is selected based on the argument list.
+
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.
  
 
|-
 
|-
Line 52: Line 54:
  
  
| style="background-color:#ffffff;border-top:0.25pt solid #c0c0c0;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| Let us look at an example
+
| style="background-color:#ffffff;border-top:0.25pt solid #c0c0c0;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| Let us look at an example.
  
 
In this program we will perform addition operation.
 
In this program we will perform addition operation.
Line 64: Line 66:
 
| style="background-color:#ffffff;border-top:0.25pt solid #c0c0c0;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| Note that I have saved the file with the name '''overload.cpp'''
 
| style="background-color:#ffffff;border-top:0.25pt solid #c0c0c0;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| Note that I have saved the file with the name '''overload.cpp'''
  
Let me explain the code now.
+
Let me explain the code.
  
 
|-
 
|-
Line 76: Line 78:
  
 
'''using namespace std;'''
 
'''using namespace std;'''
| style="background-color:#ffffff;border-top:0.25pt solid #c0c0c0;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| This is the using statement.
+
| style="background-color:#ffffff;border-top:0.25pt solid #c0c0c0;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| Here we are using the std namespace.
  
 
|-
 
|-
Line 83: Line 85:
 
'''int add(int a, int b, int c)'''
 
'''int add(int a, int b, int c)'''
  
 
+
Please write the function.
 
+
| style="background-color:#ffffff;border-top:0.25pt solid #c0c0c0;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| Then we have '''add''' function defined as '''int.'''
| style="background-color:#ffffff;border-top:0.25pt solid #c0c0c0;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| Here we have '''add function''' defined as '''int'''.
+
  
 
In this we have passed three arguments.
 
In this we have passed three arguments.
  
 +
'''Int a, int b and int c;'''
  
Then we perform the addition of three numbers.
+
'''Then we perform addition of three numbers.'''
 +
 
 +
'''And we return the value.'''
  
 
|-
 
|-
 
| style="background-color:#ffffff;border-top:0.25pt solid #c0c0c0;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:0.25pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| Highlight  
 
| style="background-color:#ffffff;border-top:0.25pt solid #c0c0c0;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:0.25pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| Highlight  
  
 +
'''float add(float d, float e)'''
 +
 +
'''{'''
  
 +
'''return (d + e);'''
  
 +
'''}Pls indicate the text to be highlighted.
 
| style="background-color:#ffffff;border-top:0.25pt solid #c0c0c0;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| Here we overload the function '''add.'''
 
| style="background-color:#ffffff;border-top:0.25pt solid #c0c0c0;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| Here we overload the function '''add.'''
  
Line 103: Line 112:
 
We pass two arguments.
 
We pass two arguments.
  
Then we perform the addition of two numbers.
+
Then we perform the addition operation on two numbers.
  
 
|-
 
|-
Line 126: Line 135:
  
 
'''float d,e,sum; '''
 
'''float d,e,sum; '''
| style="background-color:#ffffff;border-top:0.25pt solid #c0c0c0;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| In main function we declare the add function with different arguments.
+
| style="background-color:#ffffff;border-top:0.25pt solid #c0c0c0;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| In''' function''' '''main '''we declare the '''add''' '''function''' with different '''arguments'''.
  
Then we declare the variables.  
+
Then we declare the '''variables'''.  
  
  
Line 152: Line 161:
 
And store the''' '''result in variable''' sum.'''
 
And store the''' '''result in variable''' sum.'''
  
And we print the result.
+
Here we print the result.
  
 
|-
 
|-
Line 164: Line 173:
  
 
'''<nowiki>cout << "Sum of floats: " << sum << "\n";</nowiki>'''
 
'''<nowiki>cout << "Sum of floats: " << sum << "\n";</nowiki>'''
| style="background-color:#ffffff;border-top:0.25pt solid #c0c0c0;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| Here we call the add function with two arguments.
+
| style="background-color:#ffffff;border-top:0.25pt solid #c0c0c0;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| Here we call the '''add function '''with two '''arguments'''.
  
 
The result is stored in '''sum.'''
 
The result is stored in '''sum.'''
Line 174: Line 183:
  
 
'''return 0;'''
 
'''return 0;'''
| style="background-color:#ffffff;border-top:0.25pt solid #c0c0c0;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| This is the return statement
+
| style="background-color:#ffffff;border-top:0.25pt solid #c0c0c0;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| And this is the return statement
 
+
|-
+
| style="background-color:#ffffff;border-top:0.25pt solid #c0c0c0;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:0.25pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| Click on '''Save'''
+
| style="background-color:#ffffff;border-top:0.25pt solid #c0c0c0;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| Now Click on '''Save'''
+
  
 
|-
 
|-
 
| style="background-color:#ffffff;border-top:0.25pt solid #c0c0c0;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:0.25pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"|  
 
| style="background-color:#ffffff;border-top:0.25pt solid #c0c0c0;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:0.25pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"|  
| style="background-color:#ffffff;border-top:0.25pt solid #c0c0c0;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| Let us execute
+
| style="background-color:#ffffff;border-top:0.25pt solid #c0c0c0;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| Let us execute the program
  
 
|-
 
|-
Line 188: Line 193:
  
 
'''Ctrl, Alt and T'''keys simultaneously
 
'''Ctrl, Alt and T'''keys simultaneously
| style="background-color:#ffffff;border-top:0.25pt solid #c0c0c0;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| Open the terminal by pressing '''Ctrl, Alt and T '''keys simultaneously
+
| style="background-color:#ffffff;border-top:0.25pt solid #c0c0c0;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| Open the terminal by pressing '''Ctrl, Alt and T '''keys simultaneously on ypur keyboard.
  
 
|-
 
|-
Line 200: Line 205:
  
 
'''./ovr'''
 
'''./ovr'''
| style="background-color:#ffffff;border-top:0.25pt solid #c0c0c0;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| To compile the program type  
+
| style="background-color:#ffffff;border-top:0.25pt solid #c0c0c0;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| To execute type:
  
 
'''g++ overload.cpp -o ovr'''
 
'''g++ overload.cpp -o ovr'''
 +
 +
'''Press Enter'''
  
 
To execute type
 
To execute type
  
 
'''./ovr'''
 
'''./ovr'''
 +
 +
'''Press Enter'''
  
 
|-
 
|-
Line 228: Line 237:
 
'''Sum of integers is 83'''
 
'''Sum of integers is 83'''
  
Then we see:  
+
Now we see:  
  
 
'''Enter two floating point numbers'''
 
'''Enter two floating point numbers'''
Line 237: Line 246:
  
 
'''8.9'''
 
'''8.9'''
 +
 +
The output is displayed as:
  
 
'''Sum of floating point numbers is 13.4'''
 
'''Sum of floating point numbers is 13.4'''
Line 242: Line 253:
 
|-
 
|-
 
| style="background-color:#ffffff;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:0.25pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| Slide 5
 
| style="background-color:#ffffff;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:0.25pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| Slide 5
| style="background-color:#ffffff;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| Now we will see function overriding.
+
| style="background-color:#ffffff;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| Now we will see '''function overriding'''.
  
Redefining a base class function in the derived class.
+
Let us switch back to our slides.
  
The derived class function overrides the base class function.
+
Redefining a '''base class''' '''function''' in the derived class.
  
But the arguments passed are same.
+
The derived '''class function''' overrides the base class function.
 +
 
 +
But the '''arguments''' passed are same.
  
 
And the return-type is also same.
 
And the return-type is also same.
Line 254: Line 267:
 
|-
 
|-
 
| style="background-color:#ffffff;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:0.25pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"|  
 
| style="background-color:#ffffff;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:0.25pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"|  
| style="background-color:#ffffff;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| Let us see an example on Function Overriding
+
| style="background-color:#ffffff;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| Let us see an example on '''Function Overriding'''
  
I have already typed the code on the editor.
+
'''Here is an example on function Overriding'''
 +
 
 +
'''Note that our filename is override.cpp.'''
  
Lets take a look.
+
Let us go through the code.
  
 
|-
 
|-
Line 266: Line 281:
  
 
'''using namespace std;'''
 
'''using namespace std;'''
| style="background-color:#ffffff;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| This is our header file as '''iostream.'''
+
| style="background-color:#ffffff;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| This is our header file.
  
This is our''' std namespace.'''
+
Here we have the''' std namespace.'''
  
 
|-
 
|-
Line 280: Line 295:
  
 
'''int a, b, sum, sub, mul, div;'''
 
'''int a, b, sum, sub, mul, div;'''
| style="background-color:#ffffff;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| Here we have '''class arithmetic.'''
+
| style="background-color:#ffffff;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| Then we have '''class arithmetic.'''
  
 
In this we have declared integer variables''' '''as''' protected.'''
 
In this we have declared integer variables''' '''as''' protected.'''
Line 315: Line 330:
  
 
'''};'''
 
'''};'''
| style="background-color:#ffffff;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| Then we have '''virtual function''' as '''operations.'''
+
| style="background-color:#ffffff;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| Here we have '''virtual function''' as '''operations.'''
  
In this we calculate the addition of two numbers.
+
In this we add the two numbers.
  
 
And print the sum.
 
And print the sum.
Line 329: Line 344:
  
 
'''{'''  
 
'''{'''  
| style="background-color:#ffffff;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| Then we have '''class Subtract''' as '''derived class.'''
+
| style="background-color:#ffffff;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| Now we have '''class Subtract''' as '''derived class.'''
  
 
This inherits the''' base class arithmetic.'''
 
This inherits the''' base class arithmetic.'''
Line 350: Line 365:
 
'''};'''
 
'''};'''
 
| style="background-color:#ffffff;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| In this we calculate the difference of two numbers.
 
| style="background-color:#ffffff;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| In this we calculate the difference of two numbers.
 +
 +
And we print the difference.
  
 
|-
 
|-
Line 371: Line 388:
  
 
'''};'''  
 
'''};'''  
| style="background-color:#ffffff;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| Then we have another '''derived class''' as '''Multiply.'''
+
| style="background-color:#ffffff;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| Here we have another '''derived class''' as '''Multiply.'''
  
This also inherits''' class arithmetic.'''
+
This also inherits''' base class arithmetic.'''
  
 
In this we calculate the product of two''' '''numbers.
 
In this we calculate the product of two''' '''numbers.
 +
 +
And display the product.
  
 
|-
 
|-
Line 400: Line 419:
  
 
In this we calculate the division of two numbers.
 
In this we calculate the division of two numbers.
 +
 +
And then we display the division.
  
 
|-
 
|-
Line 415: Line 436:
  
 
'''Divide divd; '''
 
'''Divide divd; '''
| style="background-color:#ffffff;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| This is our '''main function.'''
+
| style="background-color:#ffffff;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| Now this is our '''main function.'''
  
 
In this we create an''' object '''of''' class arithmetic as p.'''
 
In this we create an''' object '''of''' class arithmetic as p.'''
Line 435: Line 456:
  
 
'''arith->operations();'''
 
'''arith->operations();'''
| style="background-color:#ffffff;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| '''p''' is set to the address of '''arith.'''
+
| style="background-color:#ffffff;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| '''Here, p''' is set to the address of '''arith.Or arith is set to the address of p?
 +
 
 +
 
 +
''Reply to Rahul Katarey (15/03/2013, 16:33): "..."''
 +
 
 +
'''P is set to the address of parallel.'''
 +
 
 +
 
 +
 
  
 
Here we pass''' arguments '''as''' 30 '''and''' 12 '''in''' function values.'''
 
Here we pass''' arguments '''as''' 30 '''and''' 12 '''in''' function values.'''
  
Then we call''' function operations.'''
+
Then we call''' the function operations.'''
  
 
|-
 
|-
Line 449: Line 478:
  
 
'''arith->operations(); '''
 
'''arith->operations(); '''
| style="background-color:#ffffff;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| Here we set '''subt''' to the address of '''arith.'''
+
| style="background-color:#ffffff;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| Now here we set '''subt''' to the address of '''arith.'''
  
Then we pass''' 42 '''and''' 5 '''as''' arguments.'''
+
And we pass''' 42 '''and''' 5 '''as''' arguments.'''
  
 
Again we call''' function operations.'''
 
Again we call''' function operations.'''
Line 470: Line 499:
 
And pass''' arguments '''as''' 6 '''and''' 5.'''
 
And pass''' arguments '''as''' 6 '''and''' 5.'''
  
Now''' '''we call''' function operations.'''
+
Then''' '''we call''' function operations.'''
  
 
|-
 
|-
Line 480: Line 509:
  
 
'''arith->operations(); '''
 
'''arith->operations(); '''
| style="background-color:#ffffff;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| Then we set '''divd''' to the address of '''arith''' and pass '''arguments''' as '''6''' and '''3.'''
+
| style="background-color:#ffffff;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| And here again we set '''divd''' to the address of '''arith''' And pass '''arguments''' as '''6''' and '''3.'''
  
Now we''' call function operations.'''
+
Then we''' call function operations.'''
  
 
|-
 
|-
Line 490: Line 519:
  
 
'''}'''
 
'''}'''
| style="background-color:#ffffff;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| This is our '''return statement.'''
+
| style="background-color:#ffffff;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| And this is our '''return statement.'''
  
Now let us execute the program.
+
Let us execute the program.
  
 
|-
 
|-
Line 501: Line 530:
  
 
'''./over2'''
 
'''./over2'''
| style="background-color:#ffffff;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| Come back to our terminal.
+
| style="background-color:#ffffff;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| Switch back to our terminal.
  
 
To execute type:
 
To execute type:
  
 
'''g++ override.cpp -o over2'''
 
'''g++ override.cpp -o over2'''
 +
 +
'''Press Enter'''
 +
 +
'''Type:'''
  
 
'''./over2'''
 
'''./over2'''
 +
 +
'''Press Enter'''
  
 
|-
 
|-
Line 519: Line 554:
 
'''Difference of two numbers is 37'''
 
'''Difference of two numbers is 37'''
  
'''Product of two numbers is 30'''
+
'''Product of two numbers is 30 and'''
  
 
'''Division of two numbers is 2'''
 
'''Division of two numbers is 2'''
Line 529: Line 564:
 
|-
 
|-
 
| style="background-color:#ffffff;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:0.25pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| Slide 6
 
| style="background-color:#ffffff;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:0.25pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| Slide 6
| style="background-color:#ffffff;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| Now we will see the difference of overloading and overriding.
+
| style="background-color:#ffffff;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| Let us see the difference of '''overloading''' and '''overriding'''.
  
Overloading can occurs without inheritance.
+
'''Overloading''' can occurs without inheritance.
  
Overriding occurs when one class is inherited from another.
+
'''Overriding''' occurs when one class is inherited from another.
  
In overloading the arguments and the return-type must differ.
+
In '''overloading''' the arguments and the return-type must differ.
  
In overriding the arguments and the return type must be same.
+
In '''overriding''' the arguments and the return type must be same.
  
In overloading the function name is same.
+
In '''overloading''' the function name is same.
  
 
But it behaves differently depending on the arguments passed to them.  
 
But it behaves differently depending on the arguments passed to them.  
  
In overriding the function name, arguments passed and the return type is same.
+
In '''overriding''' the function name, arguments passed and the return type is same.
  
Derived class function can perform different operations from the base class.  
+
'''Derived class '''function can perform different operations from the base class.  
  
 
|-
 
|-
Line 555: Line 590:
  
 
Summary
 
Summary
| style="background-color:#ffffff;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| In this tutorial we have seen
+
| style="background-color:#ffffff;border-top:none;border-bottom:1pt solid #000000;border-left:1pt solid #000000;border-right:1pt solid #000000;padding-top:0cm;padding-bottom:0cm;padding-left:0.018cm;padding-right:0.018cm;"| Let us summarize:
 +
 
 +
In this tutorial we have seen
  
 
'''Function overloading.'''
 
'''Function overloading.'''
  
 
'''eg. int add(int, int, int); '''
 
'''eg. int add(int, int, int); '''
 +
 +
'''We have passed three arguments.'''
  
 
'''float add(float, float); '''
 
'''float add(float, float); '''
 +
 +
'''Here we have passed two arguments.'''
  
 
'''Function Overriding.'''
 
'''Function Overriding.'''
Line 568: Line 609:
  
 
'''int operations ()'''
 
'''int operations ()'''
 +
 +
'''that was overrided.'''
 +
 +
'''And then we saw,'''
  
 
'''Difference between both.'''
 
'''Difference between both.'''

Latest revision as of 11:00, 10 May 2013

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

Author: Ashwini Patil

Keywords: Overloading, Overriding, Video tutorial, C++.


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 Let us start with an introduction to function overloading.

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.

Highlight

#include<iostream>

This is our header file iostream.
Highlight

using namespace std;

Here we are using the std namespace.
Highlight

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

Please write the function.

Then we have add function defined as int.

In this we have passed three arguments.

Int a, int b and int c;

Then we perform addition of three numbers.

And we return the value.

Highlight

float add(float d, float e)

{

return (d + e);

}Pls indicate the text to be highlighted.

Here we overload the function add.

It is declared as float.

We pass two arguments.

Then we perform the addition operation on 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 function main 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.

Here 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;

And this is the return statement
Let us execute the program
Open the terminal

Ctrl, Alt and Tkeys simultaneously

Open the terminal by pressing Ctrl, Alt and T keys simultaneously on ypur keyboard.
Type

g++ overload.cpp -o ovr

To execute

Type

./ovr

To execute type:

g++ overload.cpp -o ovr

Press Enter

To execute type

./ovr

Press Enter

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

Now we see:

Enter two floating point numbers

I will enter as:

4.5

8.9

The output is displayed as:

Sum of floating point numbers is 13.4

Slide 5 Now we will see function overriding.

Let us switch back to our slides.

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

Here is an example on function Overriding

Note that our filename is override.cpp.

Let us go through the code.

Highlight

#include <iostream>

using namespace std;

This is our header file.

Here we have the std namespace.

Highlight

class arithmetic

{

protected:

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

Then 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";

}

};

Here we have virtual function as operations.

In this we add the two numbers.

And print the sum.

Here we close the class.

Highlight

class Subtract: public arithmetic

{

Now 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.

And we print the difference.

Highlight

class Multiply: public arithmetic

{

public:

int operations ()

{

mul = a * b;

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

}

};

Here we have another derived class as Multiply.

This also inherits base class arithmetic.

In this we calculate the product of two numbers.

And display the product.

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.

And then we display the division.

Highlight

int main()

{

arithmetic *arith, p;

Subtract subt;

Multiply mult;

Divide divd;

Now 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();

Here, p is set to the address of arith.Or arith is set to the address of p?


Reply to Rahul Katarey (15/03/2013, 16:33): "..."

P is set to the address of parallel.



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

Then we call the function operations.

Highlight

arith=&subt;

arith->values(42,5);

arith->operations();

Now here we set subt to the address of arith.

And 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.

Then we call function operations.

Highlight

arith=&divd;

arith->values(6,3);

arith->operations();

And here again we set divd to the address of arith And pass arguments as 6 and 3.

Then we call function operations.

Highlight

return 0;

}

And this is our return statement.

Let us execute the program.

On the terminal


g++ override.cpp -o over2

./over2

Switch back to our terminal.

To execute type:

g++ override.cpp -o over2

Press Enter

Type:

./over2

Press Enter

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 and

Division of two numbers is 2

On the slides Let us go back to our slides.
Slide 6 Let us 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

Let us summarize:

In this tutorial we have seen

Function overloading.

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

We have passed three arguments.

float add(float, float);

Here we have passed two arguments.

Function Overriding.

eg. virtual int operations ()

int operations ()

that was overrided.

And then we saw,

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