C++ Program to concatenate two strings using Operator Overloading - GeeksforGeeks

17 May, 2021
Pre-requisite: Operator Overloading in C++Given two strings. The task is to concatenate the two strings using Operator Overloading in C++.
Example: 
Input: str1 = "hello", str2 = "world"
Output: helloworld

Input: str1 = "Geeks", str2 = "World"
Output: GeeksWorld
Approach 1: Using unary operator overloading. 
To concatenate two strings using unary operator overloading. Declare a class with two string variables.
Create an instance of the class and call the Parameterized constructor of the class to initialize those two string variables with the input strings from the main function.
Overload the unary operator to concatenate these two string variables for an instance of the class.
Finally, call the operator function and concatenate two class variables.
Below is the implementation of the above approach:  
C++
// C++ Program to concatenate two string// using unary operator overloading#include <iostream>#include <string.h> using namespace std; // Class to implement operator overloading// function for concatenating the stringsclass AddString { public:    // Classes object of string    char s1[25], s2[25];     // Parameterized Constructor    AddString(char str1[], char str2[])    {        // Initialize the string to class object        strcpy(this->s1, str1);        strcpy(this->s2, str2);    }     // Overload Operator+ to concat the string    void operator+()    {        cout << "\nConcatenation: " << strcat(s1, s2);    }}; // Driver Codeint main(){    // Declaring two strings    char str1[] = "Geeks";    char str2[] = "ForGeeks";     // Declaring and initializing the class    // with above two strings    AddString a1(str1, str2);     // Call operator function    +a1;    return 0;}
Concatenation: GeeksForGeeks
 
Approach 2: Using binary operator overloading. 
Declare a class with a string variable and an operator function ‘+’ that accepts an instance of the class and concatenates it’s variable with the string variable of the current instance.
Create two instances of the class and initialize their class variables with the two input strings respectively.
Now, use the overloaded operator(+) function to concatenate the class variable of the two instances.
Below is the implementation of the above approach:  
C++
// C++ Program to concatenate two strings using// binary operator overloading#include <iostream>#include <string.h> using namespace std; // Class to implement operator overloading function// for concatenating the stringsclass AddString { public:    // Class object of string    char str[100];     // No Parameter Constructor    AddString() {}     // Parameterized constructor to    // initialize class Variable    AddString(char str[])    {        strcpy(this->str, str);    }     // Overload Operator+ to concatenate the strings    AddString operator+(AddString& S2)    {        // Object to return the copy        // of concatenation        AddString S3;         // Use strcat() to concat two specified string        strcat(this->str, S2.str);         // Copy the string to string to be return        strcpy(S3.str, this->str);         // return the object        return S3;    }}; // Driver Codeint main(){    // Declaring two strings    char str1[] = "Geeks";    char str2[] = "ForGeeks";     // Declaring and initializing the class    // with above two strings    AddString a1(str1);    AddString a2(str2);    AddString a3;     // Call the operator function    a3 = a1 + a2;    cout << "Concatenation: " << a3.str;     return 0;}
Concatenation: GeeksForGeeks
 
Akanksha_Rai
gabaa406
C++-Operator Overloading
Technical Scripter 2018
C++
C++ Programs
GATE CS
Technical Scripter
CPP
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Comments
Old Comments
Inheritance in C++
Map in C++ Standard Template Library (STL)
Socket Programming in C/C++
C++ Classes and Objects
Multidimensional Arrays in C / C++
Header files in C/C++ and its uses
C++ Program for QuickSort
How to return multiple values from a function in C or C++?
Program to print ASCII Value of a character
CSV file management using C++