Programación General > C/C++

 no consigo entender este error, por favor

(1/3) > >>

pacorubio77:
Hola, estoy programando el operador salida de un programa, pero no se como expresar una parte, y es por una causa, porque no entiendo bien el parametro de entrada.

Por ese motivo os haré una serie de preguntas.

&po->nos indica la direccion de memoria del objeto, no?
si yo tengo un metodo declarado en la parte publica que se llama EsVacio, que devuelve un bool si el objeto está vacio, me pueden decir porque me da error esto? y sobre todo como lo tengo que expresar, pero no decirme la solucion y ya está..sino que quiero entender el porqué...

Agradeceria ayuda, este es el código de mi funcion.(hay más código pero ahi está el fallo, en que no se como expresar para saber si el objeto está vacio...




--- Citar ---ostream &operator<<(ostream &os,const TPoro &po){

   
   if(po.EsVacio()==true){
      os<<"()"<<endl;
   }   

--- Fin de la cita ---

Eternal Idol:
¿Cual es el error exacto? Cuanto mas informacion (como una minima expresion compilable del codigo) des mas posibilidades habra de que te ayudemos.

r0d:
Hola,


--- Cita de: "pacorubio77" ---&po->nos indica la direccion de memoria del objeto, no?
--- Fin de la cita ---
Eso es. Eso se llama un parametro por referencia. Para empezar, puedes considerar que es igual que un puntero (pero veras que no es exactamente igual).


--- Cita de: "pacorubio77" ---si yo tengo un metodo declarado en la parte publica que se llama EsVacio, que devuelve un bool si el objeto está vacio, me pueden decir porque me da error esto? y sobre todo como lo tengo que expresar, pero no decirme la solucion y ya está..sino que quiero entender el porqué...
--- Fin de la cita ---
Tienes que hacer el metodo const:

--- Código: C++ ---bool TPoro::EsVacio() const{//...}  Esta palabra clave const, aplicada a un metodo, significa que este metodo puede ser llamado a partir de un objeto constante. Y mira en tu operador, el objeto de tipo TPoro es pasado por referencia constante, asi que podras solo llamar a sus metodos constantes.

Hoep it helps.

pacorubio77:
Ok , lo he entendido, como el parametro le estamos pasando una referencia constante, y declarando el metodo como constante lo que hacemos es que el objeto utilizado no modificará ninguna de sus propiedades.

Una ultima cuestion

yo para probar mi programa mi estoy haciendo mi propio main, es decir yo tengo un constructor por defecto que le meto estos parametros

TPoro (int, int, double, char *);

y yo en mi main, pongo para hacerme un ejemplo

TPoro c1(5,6,20,3,"red");

pero como le meto yo en el cuarto parámetro NULL, si se lo meto asi directamente me da error, como le tengo que meter NULL, eso es para hacer comprobaciones.

Error de compilacion no me daria, pero seria correcto meterle el parametro asi?, lo digo porque luego me da fallo de segmentacion.



Espero respuesta.
Gracias.

r0d:
lo siento, no entiendo tu pregunta  :(

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa