Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Función que retorna un booleano

Estas en el tema de Función que retorna un booleano en el foro de C/C++ en Foros del Web. Buenas. Pues me estoy iniciando en el visual studio c++ que no lo habioa tocado si que habia programado con C++ pero no con visual. ...
  #1 (permalink)  
Antiguo 11/08/2011, 13:56
 
Fecha de Ingreso: septiembre-2010
Mensajes: 58
Antigüedad: 14 años, 3 meses
Puntos: 0
Función que retorna un booleano

Buenas.

Pues me estoy iniciando en el visual studio c++ que no lo habioa tocado si que habia programado con C++ pero no con visual.

Tengo una duda muy simple y tonta.

Tengo una clase con una variable de tipo booleano y lo que quiero es crear un método que si yo le paso un valor coja ese y sino me coja el de la variable global.
Vamos un set and get de toda la vida
Código:
bool showMenu;


	bool parmShowMenu(Bool	_showMenu = showMenu)
	{
		showMenu = _showMenu;

		return showMenu;
	}
Me esta devolviendo el siguiente error

error C2061: error de sintaxis : identificador 'Bool'

Entiendo que tal vez (Bool _showMenu = showMenu) no es posible en C++ o se expresa de otra manera porque sino le pongo esto no se queja

PD:Si alguien me puede recomendar una pagina o un libro se lo agradeceria porque me he descargado dos y en ninguno encuentro nada similar a esto.

saludo
  #2 (permalink)  
Antiguo 11/08/2011, 16:02
 
Fecha de Ingreso: marzo-2011
Mensajes: 54
Antigüedad: 13 años, 9 meses
Puntos: 11
Respuesta: Función que retorna un booleano

C y C++ distingue entre minúsculas y mayúsculas, por lo que no es lo mismo "bool" y "Bool" xD
Cambia "Bool" por "bool" y no te dará ese error, otra cosa es que funcione lo que intentas.
Un saludo.
  #3 (permalink)  
Antiguo 11/08/2011, 23:40
 
Fecha de Ingreso: septiembre-2010
Mensajes: 58
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Función que retorna un booleano

Las dos :D

Cita:
Iniciado por el_java_07 Ver Mensaje
C y C++ distingue entre minúsculas y mayúsculas, por lo que no es lo mismo "bool" y "Bool" xD
Mira que tonto que me volvi loco ayer..y o malo es que me paso tambien al declarar la funcion que le puse Bool parm y se me quejaba lo vi y lo arregle pero la segunda no la vi como me daba el mismo error seguia pensando que podia ser por el primero

Cita:
Iniciado por el_java_07 Ver Mensaje
otra cosa es que funcione lo que intentas.
Un saludo.
Que putada no funciona.

No sabras decirme alguna manera de hacerlo en c++ algo parecido no?

O se tiene que hacer

Código:
bool getValue()
{
    return value;
}

bool setvalue(bool _value)
{
     value = _value;
}
  #4 (permalink)  
Antiguo 12/08/2011, 05:46
 
Fecha de Ingreso: marzo-2011
Mensajes: 54
Antigüedad: 13 años, 9 meses
Puntos: 11
Respuesta: Función que retorna un booleano

los Set y Gets son tan sencillo como hacer lo que tu has hecho, no deberia darte ningun problema.
  #5 (permalink)  
Antiguo 12/08/2011, 07:18
 
Fecha de Ingreso: septiembre-2010
Mensajes: 58
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Función que retorna un booleano

No si ya se que se pueden hacer los sets y gets pero todo en una misma función, tipo como lo que he hecho?
  #6 (permalink)  
Antiguo 12/08/2011, 07:46
 
Fecha de Ingreso: marzo-2011
Mensajes: 54
Antigüedad: 13 años, 9 meses
Puntos: 11
Respuesta: Función que retorna un booleano

Si, tipo como lo que tu has hecho:
-Set
Código C++:
Ver original
  1. void setvalue(bool _value){
  2.    value = _value;
  3. }
  4.  
  5. //tambien se puede escribir así
  6. void setvalue(bool _value) : value(_value) {}

Get
Código C++:
Ver original
  1. bool returnvalue(){
  2.    return value;
  3. }

Quizas no te estoy entendiendo bien lo que quieres hacer... Un saludo.
  #7 (permalink)  
Antiguo 12/08/2011, 09:17
 
Fecha de Ingreso: septiembre-2010
Mensajes: 58
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Función que retorna un booleano

Creo que no nos entendemos.

Es que trabajo con un lenguaje que permite lo siguiente.

Código:
boolean valorGlobal;

boolena parmValor(Boolean _valor = valorGlobal)
{
   valorGlobal = _valor;

   return valorGlobal;
}
Basicamente te declaras una variable como en todos los lenguajes y despues te construyes un metodo que es un set y get a la vez.
Si te fijas a los argunmentos de la función(que es opcional)
Lo que hace es si llamas a la funcion con un valor este se le asigna a la variable global.

Le pasamos un true
Boolean _valor = valorGlobal

luego este true se lo asigna a la variable global y no lo devuelve
valorGlobal = _valor;

return valorGlobal;


Si llamas a la funcion sin un argumento lo que hace es asignarle al argumento el valor que tiene la variable en la clase.

Ahora llamos a este funcion sin valor
que sucedera _valor = valorGlobal , como valorGlobal es true de nuestra anterior ejecucion le pasa ese valor, o sea toma el valor de la variable de la clase
Boolean _valor = valorGlobal

luego este true se lo asigna a la variable global y no lo devuelve
valorGlobal = _valor;

return valorGlobal;

En visual existe algo similar aunque realmente es un metodo con un set y get dentro n oes como esto.

Por eso queria saber si hay algo asi pero me parece que no porque he estado buscando y sera que no.
  #8 (permalink)  
Antiguo 12/08/2011, 09:20
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 16 años, 6 meses
Puntos: 61
Respuesta: Función que retorna un booleano

Existe todo lo que indicas. el parametro opcional el tipo boolean (bool) y el uso indicado.
Lo unico que tienes que cuidar es usar bool y no Boolean, o al menos sé consistente. No uses bool y Boolean como si fueran intercambiables a menos que lo sean.
  #9 (permalink)  
Antiguo 12/08/2011, 11:46
 
Fecha de Ingreso: septiembre-2010
Mensajes: 58
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Función que retorna un booleano

OK

Lo miraré cuando tenga tiempo

gracias por todo

Etiquetas: programa, retorna, visual
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:55.