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 propieaspropias librerias de clases
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 circusntanciascircunstancias. Por
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 aseguraraseasegurarse de que una clase
derivada haga, de hecho, defina todas las funciones necesarias. En
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 declaradeclarar una funcion
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 fucionesfunciones no tienen definicion. Sin embargo, incluso
si la clase base es abstracta, la puede usar aun para declarar
punteros o referencias, los cuales son necesarios para soportar el