¿Cuáles son los objetos sin nombre temporales en C ++ y su uso en la sobrecarga de operadores de incremento previo?

aprender: Cómo operador de sobrecarga de incremento previo utilizando el concepto de objetos sin nombre temporales en C ++ , este artículo contiene ejemplos resueltos en este concepto?

Requisito: la sobrecarga de operadores y sus reglas

veces para reducir el tamaño del código, creamos objeto sin nombre temporal de la clase.

Cuando queremos return un objeto de función miembro de la clase sin crear un objeto, por esto: acabamos de llamar al constructor de la clase y return a la función que llama y hay un objeto para mantener la referencia devuelta por el constructor.

Este concepto se conoce como sin nombre objetos temporales , con esto vamos a implementar un programa de C ++ para operador de incremento previo sobrecarga .

Considere el programa:

using namespace std;
#include <iostream>
class Sample
{
//private data section
private:
int count;
public:
//default constructor
Sample()
{ count = 0;}
//parameterized constructor
Sample(int c)
{ count = c;}
//Operator overloading function definition
Sample operator++()
{
++count;
//returning count of Sample
//There is no new object here,
//Sample(count): is a constructor by passing value of count
//and returning the value (incremented value)
return Sample(count);
}
//printing the value
void printValue()
{
cout<<"Value of count : "<<count<<endl;
}
};
//main program
int main()
{
int i = 0;
Sample S1(100), S2;
for(i=0; i< 5; i++)
{
S2 = ++S1;
cout<<"S1 :"<<endl;
S1.printValue();
cout<<"S2 :"<<endl;
S2.printValue();
}
return 0;
}

salida

S1 :
Value of count : 101
S2 :
Value of count : 101
S1 :
Value of count : 102
S2 :
Value of count : 102
S1 :
Value of count : 103
S2 :
Value of count : 103
S1 :
Value of count : 104
S2 :
Value of count : 104
S1 :
Value of count : 105
S2 :
Value of count : 105

En este programa, se utilizó objeto temporal sin nombre en función miembro sobrecargada .

En este caso, no hemos creado ningún objeto dentro de la función miembro. Estamos simplemente llamando al constructor y devolver valor incrementado a la función que llama.


Deja un comentario

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