Diferencia entre revisiones de «Programación en C++/Funciones virtuales»
Contenido eliminado Contenido añadido
Línea 803:
anterior, la definicion de 'mostrar_area()' es simplemente un
sustituto sintetico. No computara ni mostrara el area de ningun
tipo de objeto. Como vera cuando cree sus
no es poco comun para una funcion virtual tener una definicion
sin significado en el contexto de su clase base.
Línea 810:
Una manera, como se muestra en el ejemplo, es simplemente hacer que
la funcion reporte un mensaje de advertencia. Aunque esto puede ser
util en ocasiones, no es el apropiado en muchas
ejemplo, puede haber funciones virtuales que simplemente deben ser
definidas por la clase derivada para que la clase derivada tenga
algun significado. Considere la clase 'triangulo'. Esta no tendria
significado si 'mostrar_area()' no se encuentra definida. En este
caso, usted desea algun metodo para
derivada
C++, la solucion a este problema es la 'funcion virtual pura.'
Línea 822:
que no tiene definicion relativa a la base. Como resultado, cualquier
tipo derivado debe definir su propia version -- esta simplemente
no puede usar la version definida en la base. Para
virtual pura use esta forma general:
Línea 932:
que otras clases heredaran. La razon por la cual una clase abstracta
no puede ser usada para declarar un objeto es, por supuesto, que una
o mas de sus
si la clase base es abstracta, la puede usar aun para declarar
punteros o referencias, los cuales son necesarios para soportar el
|