Cargando la página...

Copiar clases

Por Maria Zabalza el 19 de mayo de 2010 en los siguientes foros: C++

Copiar clases

Avatar de Maria Zabalza
Hola muy buenas,

Soy nueva, asi que un saludo a todos,

tengo un problema y no encuentro la solucion

El caso es q necesito copiar un objeto pero en otra dirección de memoria con todos sus parámetros y no lo consigo,

Alguien me podría echar una mano?

Respuestas

1
23
mayo
2010
Avatar de Gastón

Gastón 0 puntos

Hola bienvenida!

Mirá, para hacer copias de objetos, necesitas definiar constructores de copia.
Este es el prototipo del constructor de copia:

classname::classname(const classname &object);


Te hago un ejemplo, asi ves como se puede implementar y usar:

class MiClase{
public:
// Constructor
MiClase(int a=0, int b=0) : a(a), b(b) {}
// Constructor copia:
MiClase(const MiClase &p);
private:
// Datos miembro de la clase "MiClase"
int a, b;
};

// Definición del constructor copia:
MiClase::MiClase(const MiClase &p) : a(p.a), b(p.b) {}


Y así se usa:


MiClase obj1(2, 0);
MiClase obj2(obj1); // Uso del constructor copia

MiClase obj1(2, 0);
MiClase obj2 = obj1; // Uso del constructor copia

MiClase obj2 = 2; // Uso del constructor copia



Los contructores de copia se generan automáticamente, excepto que ya hayas definido un contructor, en tal caso es necesario definir un constructor de copia.

Todos los ejemplos anteriores son equivalentes, te dejo a vos probarlos.

Un saludo, y esperamos verte de nuevo por aqui.

Tema cerrado por inactividad mayor a 90 días