Cambiar valor de una variable de tipo estructura

Iniciado por 4dr14n31t0r, 27 Septiembre 2016, 12:42 PM

0 Miembros y 1 Visitante están viendo este tema.

4dr14n31t0r

Estructura o clase, me da lo mismo.

El problema es si hay alguna forma de hacerlo sin tener que crear una nueva variable.
Por ejemplo:
Código (cpp) [Seleccionar]
struct E{
   int x;
   E(int n) : x(n) {};
};
int main(){
E e (43);
//e (21) <- No es valido, tendria que crear una nueva variable.
E e2 (21);
e = e2;
}

¿Alguna idea de como hacer esto sin tener que recurrir a una variable auxiliar?

do-while

Sobrecarga el operador de asignación = para poder asignar a la clase (un struct en C++ es una clase con acceso público por defecto) un valor entero. Si mal no recuerdo los compiladores crean por defecto un operador de asignación miembro a miembro, así que otra opción que tienes es hacer unobjeto = constructor(parametros) (nada aconsejable si algún miembro tiene memoria dinámicamente asignada). O crea una función miembro que asigne un valor entero al miembro de la clase que corresponda...
- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!

MAFUS


4dr14n31t0r

Cita de: MAFUS en 27 Septiembre 2016, 12:58 PM
Código (cpp) [Seleccionar]
e.x =  21;

O si e es un puntero

Código (cpp) [Seleccionar]
e->x =  21;

Solo he puesto de ejemplo esa estructura para no poner mas variables dentro de la misma, pero imaginate que tiene 200. No vas a ir de uno en uno asignandolo todo.

De todos modos gracias, pero ya encontre la respuesta investigando:
Código (cpp) [Seleccionar]
e = E(21);

Antes creia que la unica manera de usar el constructor era asi:
Código (cpp) [Seleccionar]
Estructura e (43);