Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - yeop

#1
De acuerdo, muchas gracias.  :D

Creo que con eso ya puedo ir avanzando.
#2
Muchas gracias por las respuestas.  :D

Los operadores ternarios no los hemos dado y puesto que es para clase no sé si me dejarán usarlos. Y de todos modos "capacidad" no es lo único que hay que inicializar, los demás también tengo que inicializarlos pero he puesto "capacidad" solo como ejemplo.
Así que utilizaré el otro método.

Cita de: Eternal Idol en 13 Febrero 2016, 08:54 AM
Lo que pasas es una referencia a naveAzul (el ambito de esa variable local es main, el identificador no existe en inicializarNaves), la direccion de memoria donde esta alojada la variable, en inicializarNaves solo podes acceder a nave y los cambios que hagas seran reflejados en la memoria, en el main si accedes a naveAzul veras esos cambios. Lo que tenes que hacer es simplemente comprobar el valor de bando y trabajar con nave (o un simple if else es suficiente).

Si no lo he entendido mal: Si yo a "inicializarNaves" le paso desde el main "naveAzul" y en la función "inicializarNaves" pongo:
nave.capacidad=1500

en el main
naveAzul.capacidad
tendrá el valor 1500.

¿Es así?
#3
Buenas a todos. Puede que lo que vaya a preguntar sea una tontería, pero "acabo de empezar" en esto de la programación y no consigo resolverlo.
Planteo el problema.

Tengo un tipo de datos tal que así:

Código (cpp) [Seleccionar]
typedef struct {
   bool bando;      
   int capacidad;
   int fondos;
   double ingresos;

} Naves;


Después en el main() tengo puesto que nada más empezar haga:
 
Código (cpp) [Seleccionar]
Naves naveRoja, naveAzul; //crea 2 variables de tipo Naves

  inicializarNaves(naveAzul, true); //el booleano es para determinar de qué bando es la nave
  inicializarNaves(naveRoja,false);



Y en la función de inicialización el programa se asigna unos valores predefinidos a un barco de cada bando dependiendo de qué bando sea. Es decir, a la naveRoja le pone capacidad 2000 y a la azul capacidad 1500.
El prototipo es tal que así:
Código (cpp) [Seleccionar]
void inicializarNaves(Naves &nave,bool bando)
El problema viene en esta función.
Yo lo que quiero hacer en esta función es, ya que le paso la variable "naveAzul":
Código (cpp) [Seleccionar]
naveAzul.capacidad=1500
Pero da error diciendo que no existe dicha variable.
Si le pongo:
Código (cpp) [Seleccionar]
nave.capacidad=1500
no da problemas pero no me realiza distinción entre la naveAzul y la naveRoja.

Los parámetros de "inicializarNaves" no puedo cambiarlos, tengo que dejarlo tal cual está.

Y ahí estoy atascado, a ver si me alguien me puede echar una manita.  :P