Ver Mensaje Individual
  #4  
Antiguo 14-04-2019
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Reputación: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Imagina esta clase muy simple que tiene
- Un Miembro
- Un constructor
- Un constructor Copia
- Un operador de asignación "="



Esta sería la definición:

Código:
class Clase
{
    public:
    int  Miembro;

  Clase();
    Clase(const Clase&);
     Clase &operator=(const Clase&);
};

// Constructor
Clase::Clase(): Miembro(0)
{
}


// Constructor copia

Clase::Clase(const Clase& c): Miembro(0)
{
  *this = c;
}



// Operador asignaión

Clase& Clase::operator=(const Clase &c)
{
    Miembro = c.Miembro;
    return *this;
}

Ahora un ejemplo de copia:
Código:
  // Objeto de la primera clase
  Clase C1;
  C1.Miembro = 1;

  Clase C2 = C1;  // Usando el constructor copia

  Clase C3;
  C3 = C1;        // Usando el operador asignación

  // Usando un puntero a una clase
  Clase *C4 = new Clase;  // La creo
  *C4 = C1;               // Copio el valor



Saludos.
Responder Con Cita