Hilo
Gracias me aydais un monton (iper) 2017-12-08 11:23:04
El chico de las preguntas:
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:
http://arco.esi.uclm.es/~david.villa
Este es el codigo que no puede resolver(me sale que las vtables son inexistentes):
https://github.com/codigopublico/Git/tree/capitulo17
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.
Gracias:
Simpre con preguntas i pocas respuestas........:(.
_______________________________________________
Lista de correo Cconclase Cconclase@listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
Re: Gracias me aydais un monton (Steven Davidson) 2017-12-09 19:35:43
Hola Colegio,
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í.
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.
Por último, el código fuente que envías tiene algunos errores; esto es,
- En el fichero, "main.cpp", incluyes el fichero de cabecera y el fichero
fuente; esto es,
#include "hospi.hpp"
#include "hospi.cpp"
Sólo tienes que incluir el fichero de cabecera. En este caso, debes
compilar ambos ficheros fuente: "main.cpp" y "hospi.cpp".
- El error original es en la implementación de 'get()'. Escribes,
dis::Bdisco::Ddisco* dis::lista::get()
{
return *Disco;
}
Estás retornando un objeto, cuando la función miembro requiere retornar un
puntero. Deberías escribir:
dis::Bdisco::Ddisco* dis::lista::get()
{
return *Disco;
}
- En la implementación del constructor, 'lista(int n)', escribes,
for( int i = 0; i < n; i++ )
{
Disco = new Ddisco[i];
}
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,
Disco = new Ddisco[n];
- No has implementado el destructor para 'lista', por lo que no puedes
liberar la memoria previamente creada dinámicamente. Es decir, deberías
escribir,
Espero que esto aclare las dudas.
Steven
2017-12-08 6:23 GMT-05:00 colegio4497 <colegio4497@disroot.org>:
> El chico de las preguntas:
> 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:
> http://arco.esi.uclm.es/~david.villa
> Este es el codigo que no puede resolver(me sale que las vtables son
> inexistentes):
> https://github.com/codigopublico/Git/tree/capitulo17
> 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.
>
> Gracias:
> Simpre con preguntas i pocas respuestas........:(.
>
>
_______________________________________________
Lista de correo Cconclase Cconclase@listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ