SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: Psc11 en Martes 26 de Diciembre de 2006, 22:22

Título: Ayuda
Publicado por: Psc11 en Martes 26 de Diciembre de 2006, 22:22
Hola a todos, estoy haciendo una Practica de mi universidad en c++ pero tengo un problema:

Hay una clase llamada Proceso y se ha creado una variable llamada tp que es un puntero de tipo proceso.

Despues se ha creado una clase llamada procesoSimple que hereda de Proceso y le he añadido un metodo llamado observador.

cuando pongo tp -> Observador() me dice que tp es de tipo proceso y no reconoce la funcion observador(que es de ProcesoSimple)

mi profesor me ha dicho que tengo q hacer un cast pero no me dice como ponerlo y por mas q pruebo no me sale.

Me podeis ayudar?

Muchas gracias
Título: Re: Ayuda
Publicado por: Eternal Idol en Martes 26 de Diciembre de 2006, 23:09
¿Y porque tendria que reconocerla? Crea una instancia de la clase que tenga ese metodo ...

El casting lo harias asi:
Código: Text
  1.  
  2. ((ProcesoSimple*)tp)->Observador();
  3.  
  4.  

Pero no es algo seguro ...
Título: Re: Ayuda
Publicado por: Psc11 en Martes 26 de Diciembre de 2006, 23:38
Muchisimas gracias!! Con ese cast ya me va perfecto :)
Título: Re: Ayuda
Publicado por: RadicalEd en Martes 26 de Diciembre de 2006, 23:44
Cita de: "Eternal Idol"
¿Y porque tendria que reconocerla? Crea una instancia de la clase que tenga ese metodo ...

El casting lo harias asi:
Código: Text
  1.  
  2. ((ProcesoSimple*)tp)->Observador();
  3.  
  4.  

Pero no es algo seguro ...
Pregunta?

Por qué no es seguro???
Título: Re: Ayuda
Publicado por: Eternal Idol en Miércoles 27 de Diciembre de 2006, 00:46
Cita de: "Psc11"
Muchisimas gracias!! Con ese cast ya me va perfecto :)
De nadas.

Cita de: "RadicalEd"
Pregunta?

Por qué no es seguro???

¿Como sabemos que una funcion de una subclase no necesitara atributos de la misma de los cuales carece la clase madre? De necesitarlos e intentar acceder a los mismos como poco habra un problema de logica y muy probablmente una excepcion ...