In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Herencia en xHarbour

Foro de Xailer profesional en español
Responder
jmartial
Mensajes: 397
Registrado: Vie May 20, 2005 8:53 pm

Herencia en xHarbour

Mensaje por jmartial »

Hola,
Tengo una duda sobre xHarbour y no sé si con este compilador se puede
hacer lo siguiente.
Quiero crear una clase con un método que deben definir todas las clases
que hereden de ella, pero en la principal no está definida.
Se puede hacer algo con la cláusula VIRTUAL, pero yo necesito que si en
la clase hija no se sobreescribe me dé un error de algún tipo que me
indique que ese método hay que desarrollarlo en la clase hija FORZOSAMENTE.
A ver si alguien me puede echar un cable.
Un Saludo,
Joaquí­n
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5706
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Herencia en xHarbour

Mensaje por jfgimenez »

Joaquín,
> Tengo una duda sobre xHarbour y no sé si con este compilador se puede
> hacer lo siguiente.
>
> Quiero crear una clase con un método que deben definir todas las clases
> que hereden de ella, pero en la principal no está definida.
>
> Se puede hacer algo con la cláusula VIRTUAL, pero yo necesito que si en la
> clase hija no se sobreescribe me dé un error de algún tipo que me indique
> que ese método hay que desarrollarlo en la clase hija FORZOSAMENTE.
Que yo sepa, no hay una solución 100% satisfactora a lo que pides. Lo único
que puedes hacer es crear ese método con un MsgInfo() o un LogDebug() en la
clase padre, pero claro, ese mensaje sólo te va a salir si intentas ejecutar
el método en run-time, nunca en tiempo de compilación.
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
jmartial
Mensajes: 397
Registrado: Vie May 20, 2005 8:53 pm

Herencia en xHarbour

Mensaje por jmartial »

Gracias Jose,
Lo hice con un msginfo(), en principio me vale, porque así­ no me obliga
a crearlo antes de compilar, simplemente me avisa en tiempo de ejecución
sin romper la aplicación.
Estarí­a bien en un futuro, que harbour implementara algo parecido a los
interfaces de java, que se basa precisamente en este principio y permite
simular la herencia múltiple.
Aparte que le dá las pautas al programador de qué métodos tiene que
desarrollar, pero bueno, esto es un tema mucho más complejo que
simplemente esto.
Un Saludo, gracias y próspero 2008
Joaquí­n
Jose F. Gimenez escribió:
> Joaquí­n,
>
>> Tengo una duda sobre xHarbour y no sé si con este compilador se puede
>> hacer lo siguiente.
>>
>> Quiero crear una clase con un método que deben definir todas las clases
>> que hereden de ella, pero en la principal no está definida.
>>
>> Se puede hacer algo con la cláusula VIRTUAL, pero yo necesito que si en la
>> clase hija no se sobreescribe me dé un error de algún tipo que me indique
>> que ese método hay que desarrollarlo en la clase hija FORZOSAMENTE.
>
> Que yo sepa, no hay una solución 100% satisfactora a lo que pides. Lo único
> que puedes hacer es crear ese método con un MsgInfo() o un LogDebug() en la
> clase padre, pero claro, ese mensaje sólo te va a salir si intentas ejecutar
> el método en run-time, nunca en tiempo de compilación.
>
Responder