C/Visual C - Ayuda con POLIMORFISMO

 
Vista:

Ayuda con POLIMORFISMO

Publicado por Benito Martiarena (1 intervención) el 29/09/2003 16:56:45
Buenas:
Alguien me podria explicar los temas (c++)
- funciones virtuales.
- ligadura estatica y dinamica .
Leí sobre ellos en el libro C++ a su alcance (Aguilar), pero no entiendo demasiado.
Gracias por su atencion.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda con POLIMORFISMO

Publicado por Oliver++ (339 intervenciones) el 30/09/2003 15:50:08
1. en internet, hay un monton de info, busca en google
2. los libros de Luis Joyanes Aguilar que he visto no explican bien este tema y para temas avanzados no te lo recomiendo.
Lo de funciones virtuales son funciones que conocen el objeto que las llamó ( clase base o derivada ) y según la que fué llama la funcion correspondiente.
Lo de ligadura estática y dinámica, depende de que tema estés hablando, pero por la pregunta de virtual dedusco que es con este tipo de funciones. ( hay ligadura estatica y dinamica cuando se habla de dlls ). Las funciones virtuales se ligan dinámicamente porque se resuelve su direccion en tiempo de ejecucion y no de compilacion. Son más lentas que las dinámicas pero con la ventaja que tienen, no creo que te preocupe mucho.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

PARA OLIVER++

Publicado por Benito (1 intervención) el 01/10/2003 15:58:42
Gracias por tu ayuda, ahora lo que no entiendo es eso de "ligar" cuando dices : "...Las funciones virtuales se ligan...".
Me gustaria saber que pasa cuando las funciones no son virtuales, es decir que sucede cuando se compila para generar obj y luego el exe con el enlazador. Dime si es correcto: cuando se compila el fuente, genera en el obj una lista de las funciones (miembros o no) que se van invocando desde este. Luego en la etapa de enlazado se incorpora en el exe el codigo de la funcion llamada en el lugar donde se invoca, es decir que el codigo se repite tantas veces como invocaciones se hagan?. Esto sería entonces ligadura estática o temprana.
Esto no sucede con las funciones virtuales y la ligadura dinámica, es decir que el código de la función no se inserta en cada llamada en la compilacio/enlace , si no que se hace cuando el programa se ejecuta? Mas o menos es lo que entiendo. Corrijeme por favor.

Gracias por tu tiempo y por lo de google tambien :)

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:PARA OLIVER++

Publicado por Oliver++ (339 intervenciones) el 01/10/2003 19:52:39
ligar = link
Pues no es asi, eso que deces son las funciones enlinea ( inline )
www.zator.com
busca en ese enlase lo de funciones virtuales, está bien detallado y con ejemplos. Describirte todo este proceso aquí es tedioso por aquí.
espero haberte ayudado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar