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: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?
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...
e.x = 21;
O si e es un puntero
e->x = 21;
Cita de: MAFUS en 27 Septiembre 2016, 12:58 PM
e.x = 21;
O si e es un puntero
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:
e = E(21);
Antes creia que la unica manera de usar el constructor era asi:
Estructura e (43);