EDUCBA

EDUCBA

MENUMENU
  • Free Tutorials
  • Free Courses
  • Certification Courses
  • 600+ Courses All in One Bundle
  • Login

C++ operator=()

Home » Software Development » Software Development Tutorials » C ++ Programming Tutorial » C++ operator=()

C++ operator=()

Introduction to C++ operator=()

Operator=() is an assignment Operator overloading in C++. As we know that an operator overloading is used to redefines the operators to perform the operation on the user-defined data type. An Operator overloading in C++ is a static polymorphism or compile-time polymorphism. In c++ almost all operators can be overloaded, except few operators. So one of the operator overloadings is Operator=(), which is an assignment Operator overload that overload the assignment operator and redefine to perform the operation on user-defined data.

We know about the assignment operator that, it is Uses to assign value to a variable represented by =(equal) sign; it is a binary operator that has R-Value and L-value the R-value assign or copies to L-Value.

Start Your Free Software Development Course

Web development, programming languages, Software testing & others

So when the assignment operator is overload the assignment operator should be performed on the user-defined data types as well, so all values of one object (user-defined data types) can be copied to another object.

Syntax 

Below is the syntax mentioned:

return_type : : operator =(Parameter_list )
{
// statements to be executed to overload functionality of an assignment operator.
}

An operator is an operator function where the operator is a keyword which will be there for all operators overload and = is an assignment operator being overloaded.

Working and Examples of the Operator=() function in C++

Next, we write the C++ code to understand the Operator=() function working more clearly with the following example where we use Operator=() function to copy one object to another object, as below –

Popular Course in this category
C++ Training (4 Courses, 5 Projects, 4 Quizzes)4 Online Courses | 5 Hands-on Projects | 37+ Hours | Verifiable Certificate of Completion | Lifetime Access | 4 Quizzes with Solutions
4.5 (4,890 ratings)
Course Price

View Course

Related Courses
Java Training (40 Courses, 29 Projects, 4 Quizzes)C Programming Training (3 Courses, 5 Project)

Example #1

Code:

#include <iostream>
using namespace std;
// create user define class
class Employee
{
public:
// declar instance variable
int salary;
Employee( int sal )
{
salary = sal;
}
// Assignment Operators Overloading
Employee operator =(Employee n)
{
Employee temp = n.salary;
return temp;
}
};
int main()
{
// create user deined objects
Employee e1( 20000 );
Employee e2( 25000 );
Employee e3 = e1;
cout<< e3.salary;
return 0;
}

Output:

C++ operator=() output 1

As in the above code the Employee operator =(Employee n ); function is defined for an assignment operator overload, as here this function accepted the Employee class object as a parameter and it return accepted object salary that is what assign or copy to another object when used assignment operator as in code Employee e3 = e1;. Once compiler encounter e3 = e1; statement it call to the operator =(Employee n ); defined function as e3.operator =(e1). Here e1 object is passes as a parameter and e3 is the object on which the assignment operator function is called, so e1.salary is assign or copy to e3 object.

Next we rewrite the above C++ code to see what happen if we not define Operator =() function in class to copy one object to another object, as below –

Example #2

Code:

#include <iostream>
using namespace std;
// create user define class
class Employee
{
public:
// declar instance variable
int salary;
Employee( int sal )
{
salary = sal;
}
// No Assignment Operators Overloading
};
int main()
{
// create user deined objects
Employee e1( 20000 );
Employee e2( 25000 );
Employee e3 = e1;
cout<< e3.salary;
return 0;
}

Output:

C++ operator=() output 2

As in the above code the Employee operator =(Employee n); function is not defined for an assignment operator to be overload, but object e1 is copied to e3 as we got same output 20000. So the assignment operator is by default overloaded for user defined objects, where as other binary operator by default not overloaded like ‘+’, ‘-‘, ‘*’ etc.

Next we rewrite the above c++ code to see what happen if we not define Operator +() function in class to perform addition of object, as below –

Example #3

Code:

#include <iostream>
using namespace std;
// create user define class
class Employee
{
public:
// declar instance variable
int salary;
Employee( int sal )
{
salary = sal;
}
// No addition Operators Overloading
};
int main()
{
// create user deined objects
Employee e1( 20000 );
Employee e2( 25000 );
// addition operator is using on define object which give comple time error here
Employee e3 = e1 + e2;
cout<< e3.salary;
return 0;
}

Once we compile the above code we gets below error –

Output:

output 3

Next we rewrite the above C++ code to overload the Operator=() function where it copy one object to another object with some operation, as below –

Example #4

Code:

#include <iostream>
using namespace std;
// create user define class
class Employee
{
public:
int salary;
Employee( int sal )
{
salary = sal;
}
// Assignment Operators Overloading
void operator =(Employee n)
{
salary = n.salary + 10000;
}
};
int main()
{
// create user deined objects
Employee e1( 20000 );
Employee e2( 25000 );
e2 = e1;
cout<< e2.salary;
return 0;
}

Output:

output 4

As in the above code the Employee operator =(Employee n); function is defined for an assignment operator overload, as here this function accepted the Employee class object as a parameter and it update the salary of the calling object by salary of the pass object with addition of 1000. So when an assignment operator used as in the above code Employee e3 = e1; the e3 salary update or copy by e1 object salary plus 10000. Therefore the output is 30000 not just 20000.

Conclusion

Operator=( ) overload an assignment Operator in C++ which can be uses to redefines the assignment operators to perform the operation on the user-defined data type.

Recommended Articles

This is a guide to C++ operator=(). Here we discuss the introduction to Operator=() function in C++ along with the programming examples. You may also have a look at the following articles to learn more –

  1. Macros in C++ 
  2. 2D Arrays in C++
  3. C++ Struct
  4. Recursion in C++

All in One Software Development Bundle (600+ Courses, 50+ projects)

600+ Online Courses

50+ projects

3000+ Hours

Verifiable Certificates

Lifetime Access

Learn More

0 Shares
Share
Tweet
Share
Primary Sidebar
C plus plus Programming Tutorial
  • Operators
    • C++ Operators
    • Arithmetic Operators in C++
    • Assignment Operators in C++
    • Bitwise Operators in C++
    • Relational Operators in C++
    • Boolean Operators in C++
    • Unary Operators in C++
    • C++ Operator[]
    • Operator Precedence in C++
    • C++ operator=()
  • Basic
    • Introduction To C++
    • What is C++
    • Features of C++
    • Applications of C++
    • Best C++ Compiler
    • C++ Data Types
    • C++ Double
    • C++ unsigned int
    • User Defined Data Types in C++
    • Variables in C++
    • C++ Keywords
    • Pointers in C++
    • C++ Void Pointer
    • Function Pointer in C++
    • Iterator in C++
    • C++ Commands
    • Object in C++
    • C++ Literals
    • C++ Reference
    • C++ Undefined Reference
    • String in C++
    • C++ Programming Language (Basics)
    • C++ Identifiers
    • C++ Header Files
    • Type Casting in C++
    • C++ Formatter
  • Control Statements
    • Control Statement in C++
    • if else Statement in C++
    • Else If in C++
    • Nested if in C++
    • Continue Statement in C++
    • Break Statement in C++
    • Switch Statement in C++
    • goto Statement in C++
    • C++ Struct
    • Loops in C++
    • Do While Loop in C++
    • Nested Loop in C++
  • Functions
    • C++ String Functions
    • Math Functions in C++
    • Friend Function in C++
    • Recursive Function in C++
    • Virtual Functions in C++
    • strcat() in C++
    • swap() in C++
    • strcmp() in C++
    • ceil function in C++
    • C++ begin()
    • size() in C++
    • C++ test()
    • C++ any()
    • C++ Bitset
    • C++ find()
    • C++?Aggregation
    • C++?String append
    • C++ String Copy
    • C++ end()
    • C++ endl
    • C++ push_back
    • C++ shuffle()
    • malloc() in C++
    • C++ reserve()
    • C++ unique()
    • C++ sort()
    • C++ find_if()
    • Reflection in C++
    • C++ replace()
    • C++ search()
    • C++ Memset
    • C++ size_t
    • C++ Substring
    • C++ Max
    • C++ absolute value
    • C++ memcpy
    • C++ wchar_t
    • C++ free()
    • C++ sizeof()
    • C++ Move Semantics
  • Array
    • Arrays in C++
    • 2D Arrays in C++
    • 3D Arrays in C++
    • Multi-Dimensional Arrays in C++
    • C++ Array Functions
    • String Array in C++
    • C++ Length of Array
    • C++ arraylist
  • Constuctor and Destructor
    • Constructor and Destructor in C++
    • Constructor in C++
    • Destructor in C++
    • Copy Constructor in C++
    • Parameterized Constructor in C++
  • Overloading and overriding
    • Overloading and Overriding in C++
    • Overloading in C++
    • Overriding in C++
    • Function Overloading in C++
    • Function Overriding in C++
    • Method Overloading in C++
  • Inhertiance
    • Types of Inheritance in C++
    • Single Inheritance in C++
    • Multiple Inheritance in C++
    • Hierarchical Inheritance in C++
    • Multilevel Inheritance in C++
    • Hybrid Inheritance in C++
  • Sorting
    • Sorting in C++ 
    • Heap Sort in C++
    • C++ Vector Sort
    • Insertion Sort in C++
    • Selection Sort in C++
  • Advanced
    • C++ namespace
    • Encapsulation in C++
    • Access Modifiers in C++
    • Abstract Class in C++
    • C++ Class and Object
    • What is Template Class in C++?
    • C++ Algorithm
    • Data Structures and Algorithms C++
    • C++ Garbage Collection
    • Virtual Keyword in C++
    • Access Specifiers in C++
    • Storage Class in C++
    • Call by Value in C++
    • Multimap in C++
    • C++ Multiset
    • C++ Lambda Expressions
    • Stack in C++
    • C++ Static
    • C++ static_cast
    • Deque in C++
    • C++ Vector Functions
    • C++ 2D Vector
    • C++ List
    • C++ Mutable
    • Enum in C++
    • Abstraction in C++
    • Signal in C++
    • C++ Queue
    • Priority Queue in C++
    • Regular Expressions in C++
    • C++ Hash Table
    • File Handling in C++
    • C++ Stream
    • ifstream in C++
    • C++ ofstream
    • C++ fstream
    • C++ Read File
    • C++ iomanip
    • Macros in C++
    • Templates in C++
    • C++ setprecision
    • C++ Int to String
    • C++ thread( )
    • C++ Thread Pool
    • C++ thread_local
  • Programs
    • Patterns in C++
    • Star Patterns In c++
    • Swapping in C++
    • Reverse Number in C++
    • Palindrome Program in C++
    • Palindrome in C++
    • Factorial Program in C++
    • Fibonacci Series in C++
    • Square Root in C++
    • Random Number Generator in C++
    • Prime Number in C++
    • Leap Year Program in C++
    • Anagram in C++
    • Armstrong Number in C++
    • Reverse String in C++
    • Socket Programming in C++
    • Matrix Multiplication in C++
    • C++ using vs typedef
    • C++ vector vs list
    • C++ vector vs array
  • Interview question
    • C++ Interview Questions
    • Multithreading Interview Questions C++

Related Courses

C++ Training Course

Java Training Course

C Programming Course

Footer
About Us
  • Blog
  • Who is EDUCBA?
  • Sign Up
  • Corporate Training
  • Certificate from Top Institutions
  • Contact Us
  • Verifiable Certificate
  • Reviews
  • Terms and Conditions
  • Privacy Policy
  •  
Apps
  • iPhone & iPad
  • Android
Resources
  • Free Courses
  • Java Tutorials
  • Python Tutorials
  • All Tutorials
Certification Courses
  • All Courses
  • Software Development Course - All in One Bundle
  • Become a Python Developer
  • Java Course
  • Become a Selenium Automation Tester
  • Become an IoT Developer
  • ASP.NET Course
  • VB.NET Course
  • PHP Course

© 2020 - EDUCBA. ALL RIGHTS RESERVED. THE CERTIFICATION NAMES ARE THE TRADEMARKS OF THEIR RESPECTIVE OWNERS.

EDUCBA
Free Software Development Course

Web development, programming languages, Software testing & others

*Please provide your correct email id. Login details for this Free course will be emailed to you
Book Your One Instructor : One Learner Free Class

Let’s Get Started

This website or its third-party tools use cookies, which are necessary to its functioning and required to achieve the purposes illustrated in the cookie policy. By closing this banner, scrolling this page, clicking a link or continuing to browse otherwise, you agree to our Privacy Policy

EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you
EDUCBA Login

Forgot Password?

EDUCBA
Free Software Development Course

Web development, programming languages, Software testing & others

*Please provide your correct email id. Login details for this Free course will be emailed to you

Special Offer - C++ Training Course Learn More