0% found this document useful (0 votes)
60 views7 pages

Week 6-8 PDF

The document discusses operator overloading in C++. It explains that operators can be overloaded to extend the functionality of operators to user-defined types. It provides an example of overloading the + operator to add two Box objects by defining the operator+ member function. The function returns a new Box with length, breadth and height equal to the sum of the respective properties of the two Box objects passed as arguments. It also gives examples of overloading functions to print different data types and explains the concept of function overloading in C++.

Uploaded by

Jason Asor
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
60 views7 pages

Week 6-8 PDF

The document discusses operator overloading in C++. It explains that operators can be overloaded to extend the functionality of operators to user-defined types. It provides an example of overloading the + operator to add two Box objects by defining the operator+ member function. The function returns a new Box with length, breadth and height equal to the sum of the respective properties of the two Box objects passed as arguments. It also gives examples of overloading functions to print different data types and explains the concept of function overloading in C++.

Uploaded by

Jason Asor
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

Republic of the Philippines

CENTRAL BICOL STATE UNIVERSITY OF AGRICULTURE


San Jose, Pili, Camarines Sur 4418
ISO 9001:2015 www.cbsua.edu.ph
TÜV-R 01 100 1934918

Week 6 to 8

Chapter 3 OVERLOADING (FUNCTION AND OPERATOR)

INTRODUCTION

C++ allows you to specify more than one definition for a function name or an operator in the
same scope, which is called function overloading and operator overloading respectively.
An overloaded declaration is a declaration that is declared with the same name as a previously
declared declaration in the same scope, except that both declarations have different
arguments and obviously different definition (implementation).
When you call an overloaded function or operator, the compiler determines the most
appropriate definition to use, by comparing the argument types you have used to call the
function or operator with the parameter types specified in the definitions. The process of
selecting the most appropriate overloaded function or operator is called overload resolution.
3.1 CONCEPT OF OVERLOADING
Overloading refers to the ability to use a single identifier to define multiple methods of a class
that differ in their input and output parameters. Overloaded methods are generally used when
they conceptually execute the same task but with a slightly different set of parameters.
Overloading is a concept used to avoid redundant code where the same method name is used
multiple times but with a different set of parameters. The actual method that gets called during
runtime is resolved at compile time, thus avoiding runtime errors. Overloading provides code
clarity, eliminates complexity, and enhances runtime performance. Overloading is used in
programming languages that enforce type-checking in function calls during compilation. When
a method is overloaded, the method chosen will be selected at compile time. This is not the
same as virtual functions where the method is defined at runtime. Unlike Java, C# allows
operators to be overloaded, in addition to methods, by defining static members using the
operator keyword. This feature helps to extend and customize the semantics of operators
relevant to user-defined types so that they can be used to manipulate object instances with
operators. The overload resolution in C# is the method by which the right function is selected
on the basis of arguments passed and the list of candidate function members that have the
same name.
The different contexts in which the overload resolution is used include:

• Invocation of a method in an expression


• Constructor during object creation
• Indexer access or through an element access and predefined or user-defined operator
expression
Republic of the Philippines
CENTRAL BICOL STATE UNIVERSITY OF AGRICULTURE
San Jose, Pili, Camarines Sur 4418
ISO 9001:2015 www.cbsua.edu.ph
TÜV-R 01 100 1934918

3.2 TYPE OF OVERLOADING


Overloading: When a single Object has multiple behaviors. Then it is called as Overloading,
Overloading is that in which a Single Object has a same name and Provides Many Functions.
In Overloading followings things denotes Overloading:

• When an Object has Same Name.


• Difference is Return type.
• Difference in Function, with Multiple Arguments.
• Difference in Data Type.

3.2.1 Constructor Overloading


Constructor overloading is that in which a Constructor has a same name and has multiple
Functions, then it is called as Constructor Overloading. As we know that Constructor are of
Default, Parameterized and Copy Constructors. So that when we are creating a Single
Constructor with Multiple Arguments then it is called as Constructor Overloading.
3.2.2 Operator Overloading
As we know that Operators are used for Performing Operations on the Operands. But Each
and Every Operator has Some Limitations Means an Operator which is also called as Binary
are used for Performing Operations on the two Operands and Unary Operators performs
their Operation on the single Operand. So with the help of Operator Overloading, we can
change the Operation of the Operator. Means With the help of Operators we can Change the
Operation of the Operators. But With the help of Operator Overloading we can Change the
behavior of the unary Operator means we can perform Operations means we can Increase or
Decrease the values of two or more Operands at a Time. And With the Help of Comparison
Operators we can also compare the Two Objects Means all the Data Members of one Object
can be compared with the Data Members of the Other Object. Without the help of Operator
Overloading this is not possible to compare two Objects. So with the help of Comparison
Operators we can compare two Objects.

3.2.3 Method Overloading


Method Overloading is also called as Function Overloading. Overloading Means a Functions
has many Behaviors occurred When in class when a functions has same name but different
behaviors A Functions said to be overloaded
When :-

• Function has same Name but Different Return Type


• Difference in No of Arguments
• Different Return Type in Arguments
When We Pass a Call for Execution then it will match the Criteria of Function like Number of
Arguments and Data types etc.
Republic of the Philippines
CENTRAL BICOL STATE UNIVERSITY OF AGRICULTURE
San Jose, Pili, Camarines Sur 4418
ISO 9001:2015 www.cbsua.edu.ph
TÜV-R 01 100 1934918

3.3 Function Overloading in C++

You can have multiple definitions for the same function name in the same scope. The
definition of the function must differ from each other by the types and/or the number of
arguments in the argument list. You cannot overload function declarations that differ only by
return type.
Following is the example where same function print() is being used to print different data
types −

#include <iostream>
using namespace std;

class printData {
public:
void print(int i) {
cout << "Printing int: " << i << endl;
}
void print(double f) {
cout << "Printing float: " << f << endl;
}
void print(char* c) {
cout << "Printing character: " << c << endl;
}
}
;
int main(void) {
printData pd;

// Call print to print integer


pd.print(5);

// Call print to print float


pd.print(500.263);

// Call print to print character


pd.print("Hello C++");

return 0;
}
Republic of the Philippines
CENTRAL BICOL STATE UNIVERSITY OF AGRICULTURE
San Jose, Pili, Camarines Sur 4418
ISO 9001:2015 www.cbsua.edu.ph
TÜV-R 01 100 1934918

When the above code is compiled and


executed, it produces the following
result −
Printing int: 5
Printing float: 500.263
Printing character: Hello C++

Operators Overloading in C++

You can redefine or overload most of the built-in operators available in C++. Thus, a
programmer can use operators with user-defined types as well.
Overloaded operators are functions with special names: the keyword "operator" followed by
the symbol for the operator being defined. Like any other function, an overloaded operator
has a return type and a parameter list.
Box operator+(const Box&);
declares the addition operator that can be used to add two Box objects and returns final Box
object. Most overloaded operators may be defined as ordinary non-member functions or as
class member functions. In case we define above function as non-member function of a class
then we would have to pass two arguments for each operand as follows −
Box operator+(const Box&, const Box&);
Following is the example to show the concept of operator over loading using a member
function. Here an object is passed as an argument whose properties will be accessed using this
object, the object which will call this operator can be accessed using this operator as explained
below −

#include <iostream>
using namespace std;

class Box {
public:
double getVolume(void) {
return length * breadth * height;
}
void setLength( double len ) {
length = len;
}
void setBreadth( double bre ) {
breadth = bre;
}
void setHeight( double hei ) {
Republic of the Philippines
CENTRAL BICOL STATE UNIVERSITY OF AGRICULTURE
San Jose, Pili, Camarines Sur 4418
ISO 9001:2015 www.cbsua.edu.ph
TÜV-R 01 100 1934918

height = hei;
}

// Overload + operator to add two Box objects.


Box operator+(const Box& b) {
Box box;
box.length = this->length + b.length;
box.breadth = this->breadth + b.breadth;
box.height = this->height + b.height;
return box;
}

private:
double length; // Length of a box
double breadth; // Breadth of a box
double height; // Height of a box
};

// Main function for the program


int main() {
Box Box1; // Declare Box1 of type Box
Box Box2; // Declare Box2 of type Box
Box Box3; // Declare Box3 of type Box
double volume = 0.0; // Store the volume of a box here

// box 1 specification
Box1.setLength(6.0);
Box1.setBreadth(7.0);
Box1.setHeight(5.0);

// box 2 specification
Box2.setLength(12.0);
Box2.setBreadth(13.0);
Box2.setHeight(10.0);

// volume of box 1
volume = Box1.getVolume();
cout << "Volume of Box1 : " << volume <<endl;

// volume of box 2
volume = Box2.getVolume();
cout << "Volume of Box2 : " << volume <<endl;

// Add two object as follows:


Box3 = Box1 + Box2;
Republic of the Philippines
CENTRAL BICOL STATE UNIVERSITY OF AGRICULTURE
San Jose, Pili, Camarines Sur 4418
ISO 9001:2015 www.cbsua.edu.ph
TÜV-R 01 100 1934918

// volume of box 3
volume = Box3.getVolume();
cout << "Volume of Box3 : " << volume <<endl;

return 0;
}

When the above code is compiled and executed, it produces the following result −
Volume of Box1 : 210
Volume of Box2 : 1560
Volume of Box3 : 5400

Overloadable/Non-overloadable Operators

Following is the list of operators which can be overloaded −

+ - * / % ^

& | ~ ! , =

< > <= >= ++ --

<< >> == != && ||

+= -= /= %= ^= &=

|= *= <<= >>= [] ()

-> ->* new new [] delete delete []


Republic of the Philippines
CENTRAL BICOL STATE UNIVERSITY OF AGRICULTURE
San Jose, Pili, Camarines Sur 4418
ISO 9001:2015 www.cbsua.edu.ph
TÜV-R 01 100 1934918

• Following is the list of operators, which cannot be overloaded −

:: .* . ?:

Learning Resources
1. CBSUA Website
2. Student Handbook
3. Fundamentals of Computing 1 (SY 2020-2021) Syllabus
4. Google.com
5. PowerPoint Presentation

Uploaded in this Google Drive Folder.

Tasks/Activities

• Lecture Discussion (Zoom/Google Meet) – Recorded


• PowerPoint Presentation
• Video Clips
• Quiz via google doc

Discussion Board

A Facebook group chat will be created where the students can discuss their ideas and thoughts. Chat
in Facebook Group allow us to communicate between users in a chat channel. Virtual Learning Portal
(VLP) will be the main source of lessons on the topic. This platform will be utilized throughout the
course.

Competency Checklist (Formative Assessment/Diagnostic)

The student will be assessed by filling out a questionnaire in google doc regarding the lessons that
have been presented. This assessment will determine the knowledge that they’ve learned with the
Video Lectures Presentation.
Instructions:

1. This is an individual activity.


2. Login to their institutional account
3. Check updated assessment

Tasks/Activities

• Answer the questionnaire


• Video presentation PowerPoint Presentation
• Video Clips

You might also like