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.