Ver Mensaje Individual
  #37 (permalink)  
Antiguo 16/04/2006, 10:13
MaxExtreme
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 8 meses
Puntos: 17
Centrándonos en el tema:

Cita:
Iniciado por enriqueplace
No he visto en ningún texto que documente principios, sugerencias, guías o buenas prácticas de diseño que recomienden el uso de la herencia múltiple. Es más, lo que he visto es todo lo contrario, hacen mucho hincapié en controlar el uso de la herencia simple, llegando a desaconsejar hasta la sobreescritura de los métodos (por el hecho de "¿para que heredas si luego sobreescribes el comportamiento?").
¡! Lo que te digo, no uses la POO y te ahorras complicaciones.

Y te respondo a la pregunta: Heredas y reescribes para luego que los objetos sepan administrarse de manera autónoma cuando les llamas para realizar una función.

El ejemplo típico, un videojuego/simuladores con todas las clases de objetos que tienen, y que tienen que actualizar en tiempo real. Llaman a todos por la misma función y ellos sólos hacen lo que deban hacer según qué sean.

Si no, ¿cómo controlas qué debe hacer cada objeto? ¡Ah, sí! Lo que se llama "downcasting", que en C++ se usa junto a la RTTI usando castings dinámicos: dynamic_cast<Hijo>(Padre);

Pero eso sí es lento y genera cascadas de condicionales que ralentizan la ejecución. Aún así, es muy útil, y no por que sea un "fregao" sugiero que lo eliminen de C++.


Cita:
Iniciado por enriqueplace
Creo que no se discute mucho el hecho de la "no conveniencia" del uso de la herencia múltiple.
Pues sí, se discute. Fíjate, ahora mismo lo estamos haciendo.

Esto es una opinión, pero veo que muchos pro-Java creen que lo que representa "Java" es el estándar en programación, y dan por supuesto que si por ejemplo Java no tiene herencia múltiple, es que no se discute sobre ello.


Cita:
Iniciado por enriqueplace
el problema es si se debe usar o no, y los efectos que pueden causar sobre nuestro diseño y su mantenimiento.
Repito: El problema lo causa el programador, no el lenguaje.

Por la misma regla de tres, no uses ni herencia simple siquiera, ni clases, ni nada. Simplemente usa un lenguaje estilo Basic, como C sin punteros, y ya está. Todo simplificación. No tendrás ningún problema.

Al menos yo no quiero ser un pardillo al que me quiten posibilidades.