SlideShare uma empresa Scribd logo
1 de 17
OOPS



   DONE BY:
   Ankush Kumar
Function Overloading
   C++ permits the use of two function with the same name.
 However such functions essentially have different argument list.
The difference can be in terms of number or type of arguments or
                              both.
   The biggest advantage of overloading is that it helps us to
 perform same operations on different datatypes without having
         the need to use separate names for each version.

This process of using two or more functions with the same name
  but differing in the signature is called function overloading.

But overloading of functions with different return types are not
                           allowed.

  In overloaded functions , the function call determines which
              function definition will be executed.
Function Overloading
Example:
#include<iostream>
using namespace std;

int abslt(int );
long abslt(long );
float abslt(float );
double abslt(double );

int main()
{
  int intgr=-5;
  long lnt=34225;
  float flt=-5.56;
  double dbl=-45.6768;
  cout<<" absoulte value of "<<intgr<<" = "<<abslt(intgr)<<endl;
   cout<<" absoulte value of "<<lnt<<" = "<<abslt(lng)<<endl;
cout<<" absoulte value of "<<flt<<" = "<<abslt(flt)<<endl;
cout<<" absoulte value of "<<dbl<<" = "<<abslt(dbl)<<endl;
}
int abslt(int num)
{
if(num>=0)
return num;
else
 return (-num);
}
long abslt(long num)
{
if(num>=0)
return num;
else return (-num);
}
float abslt(float num)
{
if(num>=0)
return num;
else return (-num);
}
double abslt(double num)
if(num>=0)
return num;
else return (-num);
}

OUTPUT
absoulte value of -5 = 5
absoulte value of 34225 = 34225
absoulte value of -5.56 = 5.56
absoulte value of -45.6768 = 45.6768


The above function finds the absolute value of any number int, long, float ,double.


The use of overloading may not have reduced the code complexity /size but has
definitely made it easier to understand and avoided the necessity of remembering
different names for each version function which perform identically the same task.
Call by Value & Call by Reference
   In C ++ programming language, variables can be
   referred differently depending on the context. For
   example, if you are writing a program for a low
   memory system, you may want to avoid copying
   larger sized types such as structs and arrays when
   passing them to functions. On the other hand,
   with data types like integers, there is no point in
   passing by reference when a pointer to an integer
   is the same size in memory as an integer itself.

   Now, let us learn how variables can be passed in
                     a C program.
Call By Value
When you use pass-by-value, the compiler copies the value of an
argument in a calling function to a corresponding non-pointer or non-
reference parameter in the called function definition. The parameter in the
called function is initialized with the value of the passed argument. As long
as the parameter has not been declared as constant, the value of the
parameter can be changed, but the changes are only performed within the
scope of the called function only; they have no effect on the value of the
argument in the calling function.

In the following example, main passes func two values: 5 and 7. The
function func receives copies of these values and accesses them by the
identifiers a and b. The function func changes the value of a. When control
passes back to main, the actual values of x and y are not changed.
Sample Program
#include <stdio.h>

void func (int a, int b)
{
  a += b;
  printf("In func, a = %d b = %dn", a, b);
}

int main(void)
{
  int x = 5, y = 7;
  func(x, y);
  printf("In main, x = %d y = %dn", x, y);
  return 0;
}
The output of the program is:

In func, a = 12 b = 7
In main, x = 5 y = 7
Call By Reference
There are two instances where a variable is passed by reference:

When you modify the value of the passed variable locally and also the
value of the variable in the calling function as well.

To avoid making a copy of the variable for efficiency reasons.
Passing by by reference refers to a method of passing the address of an
argument in the calling function to a corresponding parameter in the
called function.

 In C, the corresponding parameter in the called function must be
declared as a pointer type.

 In C++, the corresponding parameter can be declared as any reference
type, not just a pointer type.

In this way, the value of the argument in the calling function can be
modified by the called function.
Sample Program
The following example shows how arguments are passed by reference. In C++,
the reference parameters are initialized with the actual arguments when the
function is called. In C, the pointer parameters are initialized with pointer values
when the function is called.
   #include <stdio.h>

   void swapnum(int &i, int &j) {
     int temp = i;
     i = j;
     j = temp;
   }

   int main(void) {
    int a = 10;
    int b = 20;

       swapnum(a, b);
       printf("A is %d and B is %dn", a, b);
       return 0;
   }
Call by Value vs Call by Reference
 The process of calling          The process of calling
  function by actually sending     function using pointers to
  or passing the copies of         pass the address of
  data.                            variables .
 At most one value at a time     Multiple values can be
  can be returned to the           returned to calling function
  calling function with an         and explicit return
  explicit return statement.       statement is not required .
 Here formal parameters are      Here formal parameters are
  normal variable names that       pointer variables that can
  can receive actual               receive actual parameter or
  parameters/argument              arguments as address of
  value’s copy.                    variables .
Calling a Function using a Pointer
     In C++ you call a function using a function
 pointer by explicitly dereferencing it using the *
 operator. Alternatively you may also just use the
     function pointer's instead of the funtion's
 name. In C++ the two operators .* resp. ->* are
    used together with an instance of a class in
   order to call one of their (non-static) member
  functions. If the call takes place within another
 member function you may use the this-pointer.
Calling a function using a pointer
EXAMPLE:-
main()
{
TMyClass instance1;
int result3 = (instance1.*pt2Member)(12, 'a', 'b'); // C++
int result4 = (*this.*pt2Member)(12, 'a', 'b');   // C++ if this-pointer can
                                                     be used

TMyClass* instance2 = new TMyClass;
int result4 = (instance2->*pt2Member)(12, 'a', 'b'); // C++, instance2 is a
                                                        pointer
delete instance2;
return 0;
}
Pass Object As An Argument
Like any other data type,an object may be used as
   a function argument.This can be done in two
                      ways:

 ->  A copy of the entire object is passed to the
                     function
 -> Only address of the object is transferred to
                   the function
The pass by referrence method is more efficient
since it requires to pass only the address of the
         object and not the entire object
Sample Program
/*C++ PROGRAM TO PASS OBJECT AS AN ARGUMEMT. The program Adds the
two heights given in feet and inches. */

#include< iostream.h>
#include< conio.h>

class height
{
int feet,inches;
public:
void getht(int f,int i)
{
feet=f;
inches=i;
}
void putheight()
{
cout< < "nHeight is:"< < feet< < "feett"< < inches< < "inches"< < endl;
}
void sum(height a,height b)
{
height n;
n.feet = a.feet + b.feet;
n.inches = a.inches + b.inches;
if(n.inches ==12)
{
n.feet++;
n.inches = n.inches -12;
}
cout< < endl< < "Height is "< < n.feet< < " feet and "< < n.inches< < endl;
}
};
void main()
{
height h,d,a;
clrscr();
h.getht(6,5);
a.getht(2,7);
h.putheight();
a.putheight();
d.sum(h,a);
getch();
}
Classes function overloading

Mais conteúdo relacionado

Mais procurados

Function overloading and overriding
Function overloading and overridingFunction overloading and overriding
Function overloading and overridingRajab Ali
 
C++ Function
C++ FunctionC++ Function
C++ FunctionHajar
 
Function overloading in c++
Function overloading in c++Function overloading in c++
Function overloading in c++Learn By Watch
 
Types of function call
Types of function callTypes of function call
Types of function callArijitDhali
 
Functions in c language
Functions in c language Functions in c language
Functions in c language tanmaymodi4
 
Functions in C++
Functions in C++Functions in C++
Functions in C++home
 
Inline function
Inline functionInline function
Inline functionTech_MX
 
16717 functions in C++
16717 functions in C++16717 functions in C++
16717 functions in C++LPU
 
functions in C and types
functions in C and typesfunctions in C and types
functions in C and typesmubashir farooq
 
Inline Functions and Default arguments
Inline Functions and Default argumentsInline Functions and Default arguments
Inline Functions and Default argumentsNikhil Pandit
 
Lecture#6 functions in c++
Lecture#6 functions in c++Lecture#6 functions in c++
Lecture#6 functions in c++NUST Stuff
 

Mais procurados (19)

Function overloading and overriding
Function overloading and overridingFunction overloading and overriding
Function overloading and overriding
 
C++ Function
C++ FunctionC++ Function
C++ Function
 
Functions in C++
Functions in C++Functions in C++
Functions in C++
 
Function overloading in c++
Function overloading in c++Function overloading in c++
Function overloading in c++
 
Types of function call
Types of function callTypes of function call
Types of function call
 
Functions in c language
Functions in c language Functions in c language
Functions in c language
 
Functions in C++
Functions in C++Functions in C++
Functions in C++
 
C++ programming function
C++ programming functionC++ programming function
C++ programming function
 
Function
FunctionFunction
Function
 
Inline function
Inline functionInline function
Inline function
 
Functions in C++
Functions in C++Functions in C++
Functions in C++
 
16717 functions in C++
16717 functions in C++16717 functions in C++
16717 functions in C++
 
functions in C and types
functions in C and typesfunctions in C and types
functions in C and types
 
Functions in C++
Functions in C++Functions in C++
Functions in C++
 
Inline Functions and Default arguments
Inline Functions and Default argumentsInline Functions and Default arguments
Inline Functions and Default arguments
 
C functions
C functionsC functions
C functions
 
Lecture#6 functions in c++
Lecture#6 functions in c++Lecture#6 functions in c++
Lecture#6 functions in c++
 
Function in c
Function in cFunction in c
Function in c
 
C and C++ functions
C and C++ functionsC and C++ functions
C and C++ functions
 

Destaque

Being functional in PHP
Being functional in PHPBeing functional in PHP
Being functional in PHPDavid de Boer
 
PHP Functions & Arrays
PHP Functions & ArraysPHP Functions & Arrays
PHP Functions & ArraysHenry Osborne
 
Oops concepts in php
Oops concepts in phpOops concepts in php
Oops concepts in phpCPD INDIA
 
Housekeeping importance and function
Housekeeping importance and functionHousekeeping importance and function
Housekeeping importance and functionZahedul Islam
 
Php tutorial
Php tutorialPhp tutorial
Php tutorialNiit
 

Destaque (7)

Being functional in PHP
Being functional in PHPBeing functional in PHP
Being functional in PHP
 
PHP Functions & Arrays
PHP Functions & ArraysPHP Functions & Arrays
PHP Functions & Arrays
 
Functions in php
Functions in phpFunctions in php
Functions in php
 
Oops concepts in php
Oops concepts in phpOops concepts in php
Oops concepts in php
 
Php string function
Php string function Php string function
Php string function
 
Housekeeping importance and function
Housekeeping importance and functionHousekeeping importance and function
Housekeeping importance and function
 
Php tutorial
Php tutorialPhp tutorial
Php tutorial
 

Semelhante a Classes function overloading

Unit_5Functionspptx__2022_12_27_10_47_17 (1).pptx
Unit_5Functionspptx__2022_12_27_10_47_17 (1).pptxUnit_5Functionspptx__2022_12_27_10_47_17 (1).pptx
Unit_5Functionspptx__2022_12_27_10_47_17 (1).pptxvekariyakashyap
 
UNIT3.pptx
UNIT3.pptxUNIT3.pptx
UNIT3.pptxNagasaiT
 
Functions and pointers_unit_4
Functions and pointers_unit_4Functions and pointers_unit_4
Functions and pointers_unit_4Saranya saran
 
Reference Parameter, Passing object by reference, constant parameter & Defaul...
Reference Parameter, Passing object by reference, constant parameter & Defaul...Reference Parameter, Passing object by reference, constant parameter & Defaul...
Reference Parameter, Passing object by reference, constant parameter & Defaul...Meghaj Mallick
 
Function in c program
Function in c programFunction in c program
Function in c programumesh patil
 
FUNCTIONS, CLASSES AND OBJECTS.pptx
FUNCTIONS, CLASSES AND OBJECTS.pptxFUNCTIONS, CLASSES AND OBJECTS.pptx
FUNCTIONS, CLASSES AND OBJECTS.pptxDeepasCSE
 
CH.4FUNCTIONS IN C_FYBSC(CS).pptx
CH.4FUNCTIONS IN C_FYBSC(CS).pptxCH.4FUNCTIONS IN C_FYBSC(CS).pptx
CH.4FUNCTIONS IN C_FYBSC(CS).pptxSangeetaBorde3
 
User Defined Functions in C
User Defined Functions in CUser Defined Functions in C
User Defined Functions in CRAJ KUMAR
 

Semelhante a Classes function overloading (20)

Functions in C++.pdf
Functions in C++.pdfFunctions in C++.pdf
Functions in C++.pdf
 
C function
C functionC function
C function
 
Functionincprogram
FunctionincprogramFunctionincprogram
Functionincprogram
 
Chapter 5
Chapter 5Chapter 5
Chapter 5
 
Unit_5Functionspptx__2022_12_27_10_47_17 (1).pptx
Unit_5Functionspptx__2022_12_27_10_47_17 (1).pptxUnit_5Functionspptx__2022_12_27_10_47_17 (1).pptx
Unit_5Functionspptx__2022_12_27_10_47_17 (1).pptx
 
Functions
FunctionsFunctions
Functions
 
Unit iv functions
Unit  iv functionsUnit  iv functions
Unit iv functions
 
Function in c
Function in cFunction in c
Function in c
 
Functions
FunctionsFunctions
Functions
 
Functions1
Functions1Functions1
Functions1
 
UNIT3.pptx
UNIT3.pptxUNIT3.pptx
UNIT3.pptx
 
Functions and pointers_unit_4
Functions and pointers_unit_4Functions and pointers_unit_4
Functions and pointers_unit_4
 
Reference Parameter, Passing object by reference, constant parameter & Defaul...
Reference Parameter, Passing object by reference, constant parameter & Defaul...Reference Parameter, Passing object by reference, constant parameter & Defaul...
Reference Parameter, Passing object by reference, constant parameter & Defaul...
 
Function in c program
Function in c programFunction in c program
Function in c program
 
FUNCTIONS, CLASSES AND OBJECTS.pptx
FUNCTIONS, CLASSES AND OBJECTS.pptxFUNCTIONS, CLASSES AND OBJECTS.pptx
FUNCTIONS, CLASSES AND OBJECTS.pptx
 
Cpp functions
Cpp functionsCpp functions
Cpp functions
 
Functions in C++
Functions in C++Functions in C++
Functions in C++
 
CH.4FUNCTIONS IN C_FYBSC(CS).pptx
CH.4FUNCTIONS IN C_FYBSC(CS).pptxCH.4FUNCTIONS IN C_FYBSC(CS).pptx
CH.4FUNCTIONS IN C_FYBSC(CS).pptx
 
unit_2.pptx
unit_2.pptxunit_2.pptx
unit_2.pptx
 
User Defined Functions in C
User Defined Functions in CUser Defined Functions in C
User Defined Functions in C
 

Mais de ankush_kumar

mathematical induction
mathematical inductionmathematical induction
mathematical inductionankush_kumar
 
mathematical induction
mathematical inductionmathematical induction
mathematical inductionankush_kumar
 
mathematical induction
mathematical inductionmathematical induction
mathematical inductionankush_kumar
 
mathematical induction
mathematical inductionmathematical induction
mathematical inductionankush_kumar
 
Propositional And First-Order Logic
Propositional And First-Order LogicPropositional And First-Order Logic
Propositional And First-Order Logicankush_kumar
 
Soacial networking 3
Soacial networking  3Soacial networking  3
Soacial networking 3ankush_kumar
 
Soacial networking 1
Soacial networking  1Soacial networking  1
Soacial networking 1ankush_kumar
 
Memory organisation
Memory organisationMemory organisation
Memory organisationankush_kumar
 
Social networking 2
Social networking 2Social networking 2
Social networking 2ankush_kumar
 
Set theory and relation
Set theory and relationSet theory and relation
Set theory and relationankush_kumar
 

Mais de ankush_kumar (14)

Social Networking
Social NetworkingSocial Networking
Social Networking
 
mathematical induction
mathematical inductionmathematical induction
mathematical induction
 
mathematical induction
mathematical inductionmathematical induction
mathematical induction
 
mathematical induction
mathematical inductionmathematical induction
mathematical induction
 
mathematical induction
mathematical inductionmathematical induction
mathematical induction
 
Inheritance
InheritanceInheritance
Inheritance
 
Propositional And First-Order Logic
Propositional And First-Order LogicPropositional And First-Order Logic
Propositional And First-Order Logic
 
Oops
OopsOops
Oops
 
Soacial networking 3
Soacial networking  3Soacial networking  3
Soacial networking 3
 
Soacial networking 1
Soacial networking  1Soacial networking  1
Soacial networking 1
 
Memory organisation
Memory organisationMemory organisation
Memory organisation
 
Social networking 2
Social networking 2Social networking 2
Social networking 2
 
Linked list
Linked listLinked list
Linked list
 
Set theory and relation
Set theory and relationSet theory and relation
Set theory and relation
 

Último

Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...christianmathematics
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.pptRamjanShidvankar
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxAreebaZafar22
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfciinovamais
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsMebane Rash
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.MaryamAhmad92
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingTechSoup
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfJayanti Pande
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxVishalSingh1417
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibitjbellavia9
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.christianmathematics
 
Class 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfClass 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfAyushMahapatra5
 
PROCESS RECORDING FORMAT.docx
PROCESS      RECORDING        FORMAT.docxPROCESS      RECORDING        FORMAT.docx
PROCESS RECORDING FORMAT.docxPoojaSen20
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeThiyagu K
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactPECB
 
Food Chain and Food Web (Ecosystem) EVS, B. Pharmacy 1st Year, Sem-II
Food Chain and Food Web (Ecosystem) EVS, B. Pharmacy 1st Year, Sem-IIFood Chain and Food Web (Ecosystem) EVS, B. Pharmacy 1st Year, Sem-II
Food Chain and Food Web (Ecosystem) EVS, B. Pharmacy 1st Year, Sem-IIShubhangi Sonawane
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsTechSoup
 

Último (20)

Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdf
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptx
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibit
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
 
Class 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfClass 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdf
 
PROCESS RECORDING FORMAT.docx
PROCESS      RECORDING        FORMAT.docxPROCESS      RECORDING        FORMAT.docx
PROCESS RECORDING FORMAT.docx
 
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptxINDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 
Food Chain and Food Web (Ecosystem) EVS, B. Pharmacy 1st Year, Sem-II
Food Chain and Food Web (Ecosystem) EVS, B. Pharmacy 1st Year, Sem-IIFood Chain and Food Web (Ecosystem) EVS, B. Pharmacy 1st Year, Sem-II
Food Chain and Food Web (Ecosystem) EVS, B. Pharmacy 1st Year, Sem-II
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 

Classes function overloading

  • 1. OOPS DONE BY: Ankush Kumar
  • 2. Function Overloading C++ permits the use of two function with the same name. However such functions essentially have different argument list. The difference can be in terms of number or type of arguments or both. The biggest advantage of overloading is that it helps us to perform same operations on different datatypes without having the need to use separate names for each version. This process of using two or more functions with the same name but differing in the signature is called function overloading. But overloading of functions with different return types are not allowed. In overloaded functions , the function call determines which function definition will be executed.
  • 3. Function Overloading Example: #include<iostream> using namespace std; int abslt(int ); long abslt(long ); float abslt(float ); double abslt(double ); int main() { int intgr=-5; long lnt=34225; float flt=-5.56; double dbl=-45.6768; cout<<" absoulte value of "<<intgr<<" = "<<abslt(intgr)<<endl; cout<<" absoulte value of "<<lnt<<" = "<<abslt(lng)<<endl;
  • 4. cout<<" absoulte value of "<<flt<<" = "<<abslt(flt)<<endl; cout<<" absoulte value of "<<dbl<<" = "<<abslt(dbl)<<endl; } int abslt(int num) { if(num>=0) return num; else return (-num); } long abslt(long num) { if(num>=0) return num; else return (-num); } float abslt(float num) { if(num>=0) return num; else return (-num); } double abslt(double num)
  • 5. if(num>=0) return num; else return (-num); } OUTPUT absoulte value of -5 = 5 absoulte value of 34225 = 34225 absoulte value of -5.56 = 5.56 absoulte value of -45.6768 = 45.6768 The above function finds the absolute value of any number int, long, float ,double. The use of overloading may not have reduced the code complexity /size but has definitely made it easier to understand and avoided the necessity of remembering different names for each version function which perform identically the same task.
  • 6. Call by Value & Call by Reference In C ++ programming language, variables can be referred differently depending on the context. For example, if you are writing a program for a low memory system, you may want to avoid copying larger sized types such as structs and arrays when passing them to functions. On the other hand, with data types like integers, there is no point in passing by reference when a pointer to an integer is the same size in memory as an integer itself. Now, let us learn how variables can be passed in a C program.
  • 7. Call By Value When you use pass-by-value, the compiler copies the value of an argument in a calling function to a corresponding non-pointer or non- reference parameter in the called function definition. The parameter in the called function is initialized with the value of the passed argument. As long as the parameter has not been declared as constant, the value of the parameter can be changed, but the changes are only performed within the scope of the called function only; they have no effect on the value of the argument in the calling function. In the following example, main passes func two values: 5 and 7. The function func receives copies of these values and accesses them by the identifiers a and b. The function func changes the value of a. When control passes back to main, the actual values of x and y are not changed.
  • 8. Sample Program #include <stdio.h> void func (int a, int b) { a += b; printf("In func, a = %d b = %dn", a, b); } int main(void) { int x = 5, y = 7; func(x, y); printf("In main, x = %d y = %dn", x, y); return 0; } The output of the program is: In func, a = 12 b = 7 In main, x = 5 y = 7
  • 9. Call By Reference There are two instances where a variable is passed by reference: When you modify the value of the passed variable locally and also the value of the variable in the calling function as well. To avoid making a copy of the variable for efficiency reasons. Passing by by reference refers to a method of passing the address of an argument in the calling function to a corresponding parameter in the called function.  In C, the corresponding parameter in the called function must be declared as a pointer type.  In C++, the corresponding parameter can be declared as any reference type, not just a pointer type. In this way, the value of the argument in the calling function can be modified by the called function.
  • 10. Sample Program The following example shows how arguments are passed by reference. In C++, the reference parameters are initialized with the actual arguments when the function is called. In C, the pointer parameters are initialized with pointer values when the function is called. #include <stdio.h> void swapnum(int &i, int &j) { int temp = i; i = j; j = temp; } int main(void) { int a = 10; int b = 20; swapnum(a, b); printf("A is %d and B is %dn", a, b); return 0; }
  • 11. Call by Value vs Call by Reference  The process of calling  The process of calling function by actually sending function using pointers to or passing the copies of pass the address of data. variables .  At most one value at a time  Multiple values can be can be returned to the returned to calling function calling function with an and explicit return explicit return statement. statement is not required .  Here formal parameters are  Here formal parameters are normal variable names that pointer variables that can can receive actual receive actual parameter or parameters/argument arguments as address of value’s copy. variables .
  • 12. Calling a Function using a Pointer In C++ you call a function using a function pointer by explicitly dereferencing it using the * operator. Alternatively you may also just use the function pointer's instead of the funtion's name. In C++ the two operators .* resp. ->* are used together with an instance of a class in order to call one of their (non-static) member functions. If the call takes place within another member function you may use the this-pointer.
  • 13. Calling a function using a pointer EXAMPLE:- main() { TMyClass instance1; int result3 = (instance1.*pt2Member)(12, 'a', 'b'); // C++ int result4 = (*this.*pt2Member)(12, 'a', 'b'); // C++ if this-pointer can be used TMyClass* instance2 = new TMyClass; int result4 = (instance2->*pt2Member)(12, 'a', 'b'); // C++, instance2 is a pointer delete instance2; return 0; }
  • 14. Pass Object As An Argument Like any other data type,an object may be used as a function argument.This can be done in two ways: -> A copy of the entire object is passed to the function -> Only address of the object is transferred to the function The pass by referrence method is more efficient since it requires to pass only the address of the object and not the entire object
  • 15. Sample Program /*C++ PROGRAM TO PASS OBJECT AS AN ARGUMEMT. The program Adds the two heights given in feet and inches. */ #include< iostream.h> #include< conio.h> class height { int feet,inches; public: void getht(int f,int i) { feet=f; inches=i; } void putheight() { cout< < "nHeight is:"< < feet< < "feett"< < inches< < "inches"< < endl; }
  • 16. void sum(height a,height b) { height n; n.feet = a.feet + b.feet; n.inches = a.inches + b.inches; if(n.inches ==12) { n.feet++; n.inches = n.inches -12; } cout< < endl< < "Height is "< < n.feet< < " feet and "< < n.inches< < endl; } }; void main() { height h,d,a; clrscr(); h.getht(6,5); a.getht(2,7); h.putheight(); a.putheight(); d.sum(h,a); getch(); }