C++ Program to swap two members using Friend Function

07 Jul, 2022
Pre-requisite: Friend FunctionCASE 1: Given two numbers a & b, swap these two numbers using the friend function of C++. 
Examples: 
Input : a = 5, b = 9
Output : a = 9, b = 5

Input : a = 4, b = 6
Output : a= 6, b = 4
Approach: Create a class Swap, declare three variables in it, i.e., a, b, and temp and create a constructor for inputs. Declare a friend function in it. Define the friend function outside the class scope by taking arguments as call by reference to pass the copy of Swap Object. Perform the swap operation with Swap variables.
C++
// C++ Program to swap two numbers using friend function#include <iostream> using namespace std; class Swap {     // Declare the variables of Swap Class    int temp, a, b; public:     // Define the parameterized constructor, for inputs    Swap(int a, int b)    {        this->a = a;        this->b = b;    }     // Declare the friend function to swap, take arguments    // as call by reference    friend void swap(Swap&);}; // Define the swap function outside class scopevoid swap(Swap& s1){    // Call by reference is used to passed object copy to    // the function    cout << "\nBefore Swapping: " << s1.a << " " << s1.b;     // Swap operations with Swap Class variables    s1.temp = s1.a;    s1.a = s1.b;    s1.b = s1.temp;    cout << "\nAfter Swapping: " << s1.a << " " << s1.b;} // Driver Codeint main(){    // Declare and Initialize the Swap object    Swap s(4, 6);    swap(s);    return 0;}
Before Swapping: 4 6
After Swapping: 6 4
 
CASE 2: Given two objects s1 & s2 of a class, swap the data members of these two objects using friend function of C++. 
Examples: 
Input : a = 6, b = 10
Output : a = 10, b = 6

Input : a = 4, b = 6
Output : a= 6, b = 4
Approach: Create a class Swap, declare one variable in it, i.e., num and create a constructor for inputs. Declare a friend function in it. Define the friend function outside the class scope by taking arguments as call by reference to pass the copy of Swap Object. Perform the swap operation.
C++
//C++ Program to swap data members of two objects of a class using friend function.#include <iostream>   using namespace std;   class Swap {       // Declare the variable of Swap Class    int num;   public:       // Define the parameterized constructor, for input.    Swap(int num)    {        this->num = num;    }       // Declare the friend function to swap, take arguments     // as call by reference    friend void swap(Swap&, Swap&);};   // Define the swap function outside class scopevoid swap(Swap& s1, Swap& s2){    // declare a temporary variable.    int temp;    // Call by reference is used to passed object copy to    // the function    cout << "\nBefore Swapping: " << s1.num << " " << s2.num;       // Swap operations with objects of class Swap    temp = s1.num;    s1.num = s2.num;    s2.num = temp;    cout << "\nAfter Swapping: " << s1.num << " " << s2.num;}   // Driver Codeint main(){    // Declare and Initialize the objects of Swap class    Swap s1(6), s2(10);    swap(s1,s2);    return 0;}
Before Swapping: 6 10
After Swapping: 10 6
 
Time Complexity: O(1)Auxiliary Space: O(1)
routpranab03
gabaa406
jayanth_mkv
cpp-friend
C++
C++ Programs
Technical Scripter
CPP
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Sorting a vector in C++
Polymorphism in C++
std::string class in C++
Friend class and function in C++
Pair in C++ Standard Template Library (STL)
Header files in C/C++ and its uses
Sorting a Map by value in C++ STL
Program to print ASCII Value of a character
How to return multiple values from a function in C or C++?
C++ program for hashing with chaining