04.06.2015 Views

Manual básico de Programación en C++

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Una clase plantilla se produce especificando el tipo <strong>de</strong> la clase que sigue al nombre <strong>de</strong> la<br />

clase:<br />

NombreClase NombreObjeto;<br />

Ejemplo :<br />

Lista listaDeEnteros<br />

4.9. CLASES ABSTRACTAS<br />

Exist<strong>en</strong> muchas situaciones <strong>en</strong> las cuales resulta útil <strong>de</strong>finir clases para las cuales el<br />

programador no ti<strong>en</strong>e int<strong>en</strong>ción <strong>de</strong> producir ningún objeto. Estas clases se conoc<strong>en</strong><br />

como clases abstractas. A partir <strong>de</strong> una clase base abstracta no se pue<strong>de</strong>n producir<br />

objetos.<br />

El único fin <strong>de</strong> una clase abstracta es proporcionar una clase base apropiada, a partir <strong>de</strong><br />

la cual las clases pue<strong>de</strong>n heredar interfaz y/o puesta <strong>en</strong> práctica. Las clases a partir <strong>de</strong><br />

las cuales los objetos se pue<strong>de</strong>n producir, se conoc<strong>en</strong> como clases concretas.<br />

Se <strong>de</strong>fin<strong>en</strong> igual que las clases ordinarias. Sin embargo, algunos <strong>de</strong> sus métodos están<br />

<strong>de</strong>signados para ser <strong>de</strong>finidos necesariam<strong>en</strong>te por sus subclases. Sólo m<strong>en</strong>cionamos su<br />

signature (nombre <strong>de</strong>l método más sus argum<strong>en</strong>tos) incluy<strong>en</strong>do el tipo que regresa, pero<br />

no una <strong>de</strong>finición. Se podría <strong>de</strong>cir que omitimos el cuerpo <strong>de</strong>l método. Esto se expresa<br />

añadi<strong>en</strong>do ''=0'' <strong>de</strong>spués <strong>de</strong> las ''signatures'' <strong>de</strong> los métodos:<br />

class ObjetoDesplegable<br />

{<br />

...<br />

public:<br />

...<br />

virtual void print( ) = 0;<br />

};<br />

Estas <strong>de</strong>claraciones <strong>de</strong> métodos son también llamadas métodos puros. También <strong>de</strong>b<strong>en</strong><br />

ser <strong>de</strong>clarados virtuales, <strong>de</strong>bido a que sólo queremos usar objetos <strong>de</strong> clases <strong>de</strong>rivadas.<br />

Las clases que <strong>de</strong>fin<strong>en</strong> métodos puros son llamadas clases abstractas.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!