SlideShare a Scribd company logo
1 of 23
[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object]
int i, j, k;  // integers float m, n, p;  // floats k = i  +  j;   // integer addition and assignment p = m  +  n;   // floating addition and assignment The compiler overloads the  +  operator for built-in integer and float types by default, producing integer addition with i+j, and floating addition with m+n. We can make object operation look like individual int variable operation, using operator functions  Complex a, b, c; c = a + b;
[object Object],operator @(argument-list) --- operator is a function --- @ is one of C++ operator symbols (+, -, =, etc..) Examples: operator+ operator- operator* operator/
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],void CStr::cat(char *s) { int n; char *pTemp; n=strlen(s); if (n==0) return; pTemp=new char[n+nLength+1]; if (pData)  strcpy(pTemp,pData); strcat(pTemp,s); pData=pTemp; nLength+=n; }
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],new_string str1 strlen(str1) strcat(str1,str2) strlen(str1)+strlen(str2)
[object Object],[object Object],[object Object],CStr CStr::operator+ (CStr str1,CStr str2) { CStr new_string(str1); new_string.cat(str2.get()); return new_string; } “ John Johnson” Temporary CStr object Copy constructor name
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],class Complex { ... public: ... Complex operator +(const Complex &op)  { double real  = _real  + op._real, imag = _imag + op._imag; return(Complex(real, imag)); } ... }; c = a+b; c =  a.operator+  (b);
[object Object],class Complex { ... public: ... double real() { return _real; } //need access functions double imag() { return _imag; } ... }; Complex operator +(Complex &op1, Complex &op2)  { double real  = op1.real()  + op2.real(), imag = op1.imag() + op2.imag(); return(Complex(real, imag)); } c = a+b; c =  operator+  (a, b);
[object Object],class Complex { ... public: ... friend Complex operator +( const Complex &,  const Complex & ); ... }; Complex operator +(Complex &op1, Complex &op2)  { double real  = op1._real  + op2._real, imag = op1._imag + op2._imag; return(Complex(real, imag)); } c = a+b; c =  operator+  (a, b);
[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],Assignment operator for CStr: CStr&  CStr::operator=(const CStr & source) Copy Assignment is  different  from Copy Constructor Return type - a reference to (address of) a CStr object Argument type - a reference to a CStr object (since it is const, the function cannot modify it) Assignment function is called as a member function of the left operand =>Return the object itself str1=str2; str1.operator=(str2)
[object Object],[object Object],[object Object],pData nLength this Data member reference Equivalent to pData this->pData nLength this->nLength CStr object (*this)
[object Object],[object Object],[object Object],friend ostream& operator<< (ostream &os, const Date &d); ostream& operator<<(ostream &os, const Date &d) { os<<d.month<<“/”<<d.day<<“/”<<d.year; return os; } … cout<< d1;  //overloaded operator ostream& operator<<(ostream &os, const Date &d) { os<<d.month<<“/”<<d.day<<“/”<<d.year; return os; } … cout<< d1;  //overloaded operator cout  ----  object of  ostream cout  ----  object of  ostream
[object Object],istream& operator>> (istream &in, Date &d)  { char mmddyy[9]; in >> mmddyy; // check if valid data entered if (d.set(mmddyy))  return in; cout<< &quot;Invalid date format: &quot;<<d<<endl; exit(-1); } friend istream& operator>> (istream &in, Date &d); cin >> d1; cin  ----  object of  istream
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Inline functions within class declarations Inline functions outside of class declarations In both cases, the compiler will insert the code of the functions get_Data() and getlength() instead of generating calls to these functions
[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object]

More Related Content

What's hot

friends functionToshu
friends functionToshufriends functionToshu
friends functionToshuSidd Singh
 
Operator overloading
Operator overloadingOperator overloading
Operator overloadingabhay singh
 
Operator overloading in C++
Operator overloading in C++Operator overloading in C++
Operator overloading in C++Ilio Catallo
 
Operator Overloading
Operator OverloadingOperator Overloading
Operator OverloadingDustin Chase
 
Bca 2nd sem u-4 operator overloading
Bca 2nd sem u-4 operator overloadingBca 2nd sem u-4 operator overloading
Bca 2nd sem u-4 operator overloadingRai University
 
Operator overloading
Operator overloadingOperator overloading
Operator overloadingKumar
 
#OOP_D_ITS - 5th - C++ Oop Operator Overloading
#OOP_D_ITS - 5th - C++ Oop Operator Overloading#OOP_D_ITS - 5th - C++ Oop Operator Overloading
#OOP_D_ITS - 5th - C++ Oop Operator OverloadingHadziq Fabroyir
 
Operator overloading
Operator overloadingOperator overloading
Operator overloadingArunaDevi63
 
Operator overloading
Operator overloadingOperator overloading
Operator overloadingKamal Acharya
 
operator overloading & type conversion in cpp over view || c++
operator overloading & type conversion in cpp over view || c++operator overloading & type conversion in cpp over view || c++
operator overloading & type conversion in cpp over view || c++gourav kottawar
 
Presentation on overloading
Presentation on overloading Presentation on overloading
Presentation on overloading Charndeep Sekhon
 
C++ overloading
C++ overloadingC++ overloading
C++ overloadingsanya6900
 
Lec 26.27-operator overloading
Lec 26.27-operator overloadingLec 26.27-operator overloading
Lec 26.27-operator overloadingPrincess Sam
 

What's hot (20)

14 operator overloading
14 operator overloading14 operator overloading
14 operator overloading
 
friends functionToshu
friends functionToshufriends functionToshu
friends functionToshu
 
Operator overloading
Operator overloadingOperator overloading
Operator overloading
 
Operator overloading
Operator overloading Operator overloading
Operator overloading
 
Compile time polymorphism
Compile time polymorphismCompile time polymorphism
Compile time polymorphism
 
Operator overloading in C++
Operator overloading in C++Operator overloading in C++
Operator overloading in C++
 
Operator overloading
Operator overloadingOperator overloading
Operator overloading
 
Unary operator overloading
Unary operator overloadingUnary operator overloading
Unary operator overloading
 
Operator Overloading
Operator OverloadingOperator Overloading
Operator Overloading
 
Operator overloading
Operator overloadingOperator overloading
Operator overloading
 
Bca 2nd sem u-4 operator overloading
Bca 2nd sem u-4 operator overloadingBca 2nd sem u-4 operator overloading
Bca 2nd sem u-4 operator overloading
 
Operator overloading
Operator overloadingOperator overloading
Operator overloading
 
#OOP_D_ITS - 5th - C++ Oop Operator Overloading
#OOP_D_ITS - 5th - C++ Oop Operator Overloading#OOP_D_ITS - 5th - C++ Oop Operator Overloading
#OOP_D_ITS - 5th - C++ Oop Operator Overloading
 
Operator overloading
Operator overloadingOperator overloading
Operator overloading
 
Operator overloading
Operator overloadingOperator overloading
Operator overloading
 
Operator overloading
Operator overloadingOperator overloading
Operator overloading
 
operator overloading & type conversion in cpp over view || c++
operator overloading & type conversion in cpp over view || c++operator overloading & type conversion in cpp over view || c++
operator overloading & type conversion in cpp over view || c++
 
Presentation on overloading
Presentation on overloading Presentation on overloading
Presentation on overloading
 
C++ overloading
C++ overloadingC++ overloading
C++ overloading
 
Lec 26.27-operator overloading
Lec 26.27-operator overloadingLec 26.27-operator overloading
Lec 26.27-operator overloading
 

Similar to Overloading

C++ Function
C++ FunctionC++ Function
C++ FunctionHajar
 
For each task, submit your source java code file.(1) Objective Im.pdf
For each task, submit your source java code file.(1) Objective Im.pdfFor each task, submit your source java code file.(1) Objective Im.pdf
For each task, submit your source java code file.(1) Objective Im.pdfdhavalbl38
 
Virtual Function and Polymorphism.ppt
Virtual Function and Polymorphism.pptVirtual Function and Polymorphism.ppt
Virtual Function and Polymorphism.pptishan743441
 
C++ Advanced
C++ AdvancedC++ Advanced
C++ AdvancedVivek Das
 
New microsoft office word document (2)
New microsoft office word document (2)New microsoft office word document (2)
New microsoft office word document (2)rashmita_mishra
 
Clean code _v2003
 Clean code _v2003 Clean code _v2003
Clean code _v2003R696
 
An imperative study of c
An imperative study of cAn imperative study of c
An imperative study of cTushar B Kute
 
Csc1100 lecture14 ch16_pt2
Csc1100 lecture14 ch16_pt2Csc1100 lecture14 ch16_pt2
Csc1100 lecture14 ch16_pt2IIUM
 

Similar to Overloading (20)

Lecture5
Lecture5Lecture5
Lecture5
 
Memory Management In C++
Memory Management In C++Memory Management In C++
Memory Management In C++
 
Presentation
PresentationPresentation
Presentation
 
C++ Function
C++ FunctionC++ Function
C++ Function
 
02.adt
02.adt02.adt
02.adt
 
Operator overloading
Operator overloadingOperator overloading
Operator overloading
 
For each task, submit your source java code file.(1) Objective Im.pdf
For each task, submit your source java code file.(1) Objective Im.pdfFor each task, submit your source java code file.(1) Objective Im.pdf
For each task, submit your source java code file.(1) Objective Im.pdf
 
Virtual Function and Polymorphism.ppt
Virtual Function and Polymorphism.pptVirtual Function and Polymorphism.ppt
Virtual Function and Polymorphism.ppt
 
C++ Advanced
C++ AdvancedC++ Advanced
C++ Advanced
 
Functions in C++
Functions in C++Functions in C++
Functions in C++
 
New microsoft office word document (2)
New microsoft office word document (2)New microsoft office word document (2)
New microsoft office word document (2)
 
Clean code _v2003
 Clean code _v2003 Clean code _v2003
Clean code _v2003
 
Functions
FunctionsFunctions
Functions
 
C++_notes.pdf
C++_notes.pdfC++_notes.pdf
C++_notes.pdf
 
C++ tutorials
C++ tutorialsC++ tutorials
C++ tutorials
 
C++ theory
C++ theoryC++ theory
C++ theory
 
An imperative study of c
An imperative study of cAn imperative study of c
An imperative study of c
 
C++ language
C++ languageC++ language
C++ language
 
Csc1100 lecture14 ch16_pt2
Csc1100 lecture14 ch16_pt2Csc1100 lecture14 ch16_pt2
Csc1100 lecture14 ch16_pt2
 
C++lecture9
C++lecture9C++lecture9
C++lecture9
 

More from poonamchopra7975 (13)

Positive attitude2551
Positive attitude2551Positive attitude2551
Positive attitude2551
 
Positive attitude
Positive attitudePositive attitude
Positive attitude
 
Arrays
ArraysArrays
Arrays
 
Notes netbeans
Notes netbeansNotes netbeans
Notes netbeans
 
Constructor
ConstructorConstructor
Constructor
 
Computer parts
Computer partsComputer parts
Computer parts
 
Computer networking
Computer networkingComputer networking
Computer networking
 
Cna
CnaCna
Cna
 
Oops
OopsOops
Oops
 
Sample Paper I.P
Sample Paper I.PSample Paper I.P
Sample Paper I.P
 
CBSE Sample Paper IP
CBSE Sample Paper IPCBSE Sample Paper IP
CBSE Sample Paper IP
 
Sample paper i.p
Sample paper i.pSample paper i.p
Sample paper i.p
 
Sample paper
Sample paperSample paper
Sample paper
 

Overloading

  • 1.
  • 2.
  • 3. int i, j, k; // integers float m, n, p; // floats k = i + j; // integer addition and assignment p = m + n; // floating addition and assignment The compiler overloads the + operator for built-in integer and float types by default, producing integer addition with i+j, and floating addition with m+n. We can make object operation look like individual int variable operation, using operator functions Complex a, b, c; c = a + b;
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.