Página 1 de 1
Herencia en xHarbour
Publicado: Lun Dic 24, 2007 12:58 pm
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
Herencia en xHarbour
Publicado: Sab Dic 29, 2007 9:30 pm
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
Herencia en xHarbour
Publicado: Dom Dic 30, 2007 12:46 pm
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.
>