Habitualmente
las funciones virtuales de la clase base de la jerarquía
no se utilizan porque en la mayoría de los casos no
se declaran objetos de esa clase, y/o porque todas las clases
derivadas tienen su propia definición de la función
virtual. Sin embargo, incluso en el caso de que la función
virtual de la clase base no vaya a ser utilizada, debe declararse.
De
todos modos, si la función no va a ser utilizada no
es necesario definirla, y es suficiente con declararla
como función virtual pura. Una función virtual
pura se declara así:
virtual
funcion_1( ) const=0; //Función virtual pura
La
única utilidad de esta declaración es la de posibilitar
la definición de funciones virtuales en las clases
derivadas. De alguna manera se puede decir que la definición
de una función como virtual pura hace necesaria la definición
de esa función en las clases derivadas, a la vez que imposibilita
su utilización con objetos de la clase base.
Al
definir una función como virtual pura hay que
tener en cuenta que:
·
No hace falta definir el código de esa función en
la clase base.
·
No se pueden definir objetos de la clase base, ya que no se puede
llamar a las funciones virtuales puras.
·
Sin embargo, es posible definir punteros a la clase
base, pues es a través de ellos como será posible
manejar objetos de las clases derivadas.
|