Programa C++ para intercambiar dos miembros usando la función Friend

Prerrequisito: Función de amigo
CASO 1: 
Dados dos números a y b, intercambie estos dos números usando la función de amigo de C++. 

Ejemplos: 

Input : a = 5, b = 9
Output : a = 9, b = 5

Input : a = 4, b = 6
Output : a= 6, b = 4

Enfoque: 
cree una clase Swap, declare tres variables en ella, es decir, a, b y temp, y cree un constructor para las entradas. Declara una función de amigo en él. Defina la función de amigo fuera del alcance de la clase tomando argumentos como llamada por referencia para pasar la copia de Swap Object. Realice la operación de intercambio con las variables de intercambio.

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 scope
void 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 Code
int main()
{
    // Declare and Initialize the Swap object
    Swap s(4, 6);
    swap(s);
    return 0;
}
Producción: 

Before Swapping: 4 6
After Swapping: 6 4

 

CASO 2: 
dados dos objetos s1 y s2 de una clase, intercambie los miembros de datos de estos dos objetos usando la función amiga de C++. 

Ejemplos: 

Input : a = 6, b = 10
Output : a = 10, b = 6

Input : a = 4, b = 6
Output : a= 6, b = 4

Enfoque: 
cree una clase Swap, declare una variable en ella, es decir, num y cree un constructor para las entradas. Declara una función de amigo en él. Defina la función de amigo fuera del alcance de la clase tomando argumentos como llamada por referencia para pasar la copia de Swap Object. Realice la operación de intercambio.

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 scope
void 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 Code
int main()
{
    // Declare and Initialize the objects of Swap class
    Swap s1(6), s2(10);
    swap(s1,s2);
    return 0;
}
Producción: 

Before Swapping: 6 10
After Swapping: 10 6

 

Tiempo Complejidad: O(1)
Espacio Auxiliar: O(1)

Publicación traducida automáticamente

Artículo escrito por bilal-hungund y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *