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.