<div dir="ltr">Hola Colegio,<div><br></div><div>Primeramente, no hablamos mucho de las tablas de funciones virtuales porque, se trata de una implementación del lenguaje. La gramática no especifica la implementación de los conceptos del lenguaje de programación, por lo que puede existir varias implementaciones. En otras palabras, puede haber una implementación que no use una tabla virtual, o quizás en un futuro se use más de una tabla. Es cierto que, en estos momentos, la mayoría de compiladores usa tablas virtuales. La otra razón de no hablar mucho de tablas virtuales es porque un programador de C++ no usa las tablas explícitamente, mientras que el sistema de polimorfismo (dinámico) sí.</div><div><br></div><div>En segundo lugar, no he tenido ningún error acerca de la inexistencia de las tablas virtuales. Posiblemente tengas algún problema con la configuración del compilador. Intenta crear el proyecto de nuevo o revisa las opciones.</div><div><br></div><div>Por último, el código fuente que envías tiene algunos errores; esto es,</div><div><br></div><div>- En el fichero, "main.cpp", incluyes el fichero de cabecera y el fichero fuente; esto es,</div><div><br></div><div><div>#include "hospi.hpp"</div><div>#include "hospi.cpp"</div></div><div><br></div><div>Sólo tienes que incluir el fichero de cabecera. En este caso, debes compilar ambos ficheros fuente: "main.cpp" y "hospi.cpp".</div><div><br></div><div>- El error original es en la implementación de 'get()'. Escribes,</div><div><br></div><div><div>dis::Bdisco::Ddisco* dis::lista::get()</div><div>{</div><div>  return *Disco;</div><div>}</div></div><div><br></div><div>Estás retornando un objeto, cuando la función miembro requiere retornar un puntero. Deberías escribir:<br><br><div>dis::Bdisco::Ddisco* dis::lista::get()</div><div>{</div><div>  return *Disco;</div><div>}</div></div><div><br></div><div>- En la implementación del constructor, 'lista(int n)', escribes,</div><div><br></div><div><div>for( int i = 0; i < n; i++ )<br>{</div><div>  Disco = new Ddisco[i];</div><div>}</div></div><div><br></div><div>Creas varios arrays dinámicos que se pierden, excepto el último. Lo más seguro es que querías crear un solo array dinámico; esto es,<br></div><div><br></div><div><div>Disco = new Ddisco[n];</div></div><div><br></div><div>- No has implementado el destructor para 'lista', por lo que no puedes liberar la memoria previamente creada dinámicamente. Es decir, deberías escribir,</div><div><br></div><div><br></div><div>Espero que esto aclare las dudas.</div><div><br></div><div>Steven</div><div><br><div class="gmail_extra"><br><div class="gmail_quote">2017-12-08 6:23 GMT-05:00 colegio4497 <span dir="ltr"><<a href="mailto:colegio4497@disroot.org" target="_blank">colegio4497@disroot.org</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><u></u><div><div style="font-family:arial,sans-serif;font-size:13px">El chico de las preguntas:<br>Tengo dos sugerencias una es poner mas documentacion sobre las vtables i el polimorfismo ya que sin eso no se pueden resolver las dudas cuando te sale que las vtables no se pueden contruir. Tengo alguna documentacion que adjunto pero insuficiente:<br><a href="http://arco.esi.uclm.es/~david.villa" target="_blank">http://arco.esi.uclm.es/~<wbr>david.villa</a><br>Este es el codigo que no puede resolver(me sale que las vtables son inexistentes):<br><a href="https://github.com/codigopublico/Git/tree/capitulo17" target="_blank">https://github.com/<wbr>codigopublico/Git/tree/<wbr>capitulo17</a><br>Otra es simplemente es que para el concurso i si puedo falta de tiempo hare un make un proyecto nuevo para poder picar codigo sin preucparte demaciado de como esta echo el anteririor un paquete.<br><br>Gracias:<br>Simpre con preguntas i pocas respuestas........:(.</div></div>
<br></blockquote><div><br></div></div></div></div></div>