Ver Mensaje Individual
  #8 (permalink)  
Antiguo 17/10/2014, 05:12
Avatar de Profesor_Falken
Profesor_Falken
 
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 10 años, 4 meses
Puntos: 182
Respuesta: ¿Cómo fijar un dato de una estructura a la hora de introducirlo?

Buenas,

Disculpa, en mi ejemplo con la macro yo entendia que estabas usando C y no C++.
En C++ efectivamente existen construcciones mas avanzadas como los constructores.

Respecto a tu problema, no se puede resolver de una forma muy sencilla con una variable global?

Puedes crearte una variable global llamada color_fijado. En principio estaria a null pero cuando quieras fijar un valor se lo asignas y la puedes volver a poner a null cuando quieras desactivar (lo mejor aqui seria crear una funcion que active/desactive).

Posteriormente en tu contructor lo podrias comprobar:

Código C++:
Ver original
  1. poligono(int n, const char* c)
  2.     {
  3.         n_lados=n;
  4.         if (color_fijado == NULL) {
  5.         strcpy (color,c);
  6.         else {
  7.          strcpy (color,color_fijado);
  8.        }
  9.     }


O mejor aun, tienes siempre un color_fijado y cuando llamas al constructor sin indicar el color utilizamos el color_fijado

Código C++:
Ver original
  1. struct poligono
  2. {
  3.     int n_lados;
  4.     char color[20];
  5.     poligono(int n, const char* c)
  6.     {
  7.         n_lados=n;
  8.         strcpy (color,c);
  9.     }
  10.  
  11. otro constructor que utilice el color_fijado
  12.      poligono(int n)
  13.     {
  14.         n_lados=n;
  15.         strcpy (color,color_fijado);
  16.     }
  17. };

Un saludo
__________________
If to err is human, then programmers are the most human of us