×

C++ Tutorial

C++ Data types

C++ Operators & Keywords

C++ Conditional Statements

C++ Functions

C++ 'this' Pointer, References

C++ Class & Objects

C++ Constructors & Destructors

C++ Operator overloading

C++ 11 (Advance C++)

C++ Preparation

C++ Header Files & Functionsr

Data Structure with C++

C++ - Miscellaneous

C++ Programs

Overload binary plus (+) operator using non-member or free function in C++

Overloading Binary plus (+) operator in C++: Using C++ program, here we will learn how to overload Binary plus operator using non-member or free function?

Prerequisite: operator overloading and its rules

Here, we are going to implement a C++ program that will demonstrate operator overloading (Binary Plus (+)) using non-member or free member function.

Note: This type of non-member function will access the private member of class. So the function must be friend type (friend function).

C++ program to overload binary plus (+) operator using non-member or free function

Consider the program:

using namespace std;
#include <iostream>

// Sample class to demonstrate operator overloading
class Sample {
  // private data members
 private:
  int value;

 public:
  // default constructor
  Sample() { value = 0; }

  // Parameterized constructor
  Sample(int c) { value = c; }

  // making operator overloading declaration as
  // friend function
  friend Sample operator+(Sample &S1, Sample &S2);

  // printing value
  void printValue() { cout << "Value is : " << value << endl; }
};

// overator overloading function definition
Sample operator+(Sample &S1, Sample &S2) {
  Sample S;
  S = S1.value + S2.value;
  return S;
}

// main program
int main() {
  int i = 0;
  // object declaration by calling parameterized constructor
  Sample S1(100);
  Sample S2(200);
  Sample S3;

  // adding objects (Binary + operator overloading)
  S3 = S1 + S2;

  cout << "S1 :" << endl;
  S1.printValue();

  cout << "S2 :" << endl;
  S2.printValue();

  cout << "S3 :" << endl;
  S3.printValue();

  return 0;
}

Output

S1 :
Value is : 100
S2 :
Value is : 200
S3 :
Value is : 300

Comments and Discussions!

Load comments ↻





Copyright © 2024 www.includehelp.com. All rights reserved.