estudiamos lo que son las plantillas en C++. En nuestra entrada de blog de hoy. Realizaremos un leve recordatorio de como se declaran las plantillas de clase y funciones en C++.

Para retomar en la siguiente sesión algunos ejemplos utilizando estas plantillas.

C++ permite crear plantillas de funciones y plantillas de clases.

La sintaxis para declarar una plantilla de función es parecida a la de cualquier otra función, pero se añade al principio una presentación de la clase que se usará como referencia en la plantilla:

template <class|typename <id>[,…]>

<tipo_retorno> <identificador>(<lista_de_parámetros>)

{

// Declaración de función

};

La sintaxis para declarar una plantilla de clase es parecida a la de cualquier otra clase, pero se añade al principio una presentación de la clase que se usará como referencia en la plantilla:

template <class|typename <id>[,…]>

class <identificador_de_plantilla>

{

// Declaración de funciones

// y datos miembro de la plantilla

};

Pero seguro que se ve mejor con un ejemplo:

template <class T1>

class Tabla {

public:

Tabla();

~Tabla();

};

Del mismo modo, cuando tengamos que definir una función miembro fuera de la declaración de la clase, tendremos que incluir la parte del template y como nombre de la clase incluir la plantilla antes del operador de ámbito (::). Por ejemplo:

template <class T1>

Tabla<T1>::Tabla() {

// Definición del constructor

}

Plantillas de funciones

Un ejemplo de plantilla de función puede ser esta que sustituye a la versión macro de max:

template <class T>

T max(T x, T y) {

return (x > y) ? x : y;

};

La ventaja de la versión en plantilla sobre la versión macro se manifiesta en cuanto a la seguridad de tipos. Por supuesto, podemos usar argumentos de cualquier tipo, no han de ser necesariamente clases. Pero cosas como estas darán error de compilación:

int a=2;

char b=’j’;

int c=max(a,b);

El motivo es que a y b no son del mismo tipo. Aquí no hay promoción implícita de tipos. Sin embargo, están permitidas todas las combinaciones en las que los argumentos sean del mismo tipo o clase, siempre y cuando que el operador > esté implementado para esa clase.

int a=3, b=5, c;

char f=’a’, g=’k’, h;

c = max(a,b);

h = max(f,g);

Bien este fue un leve repaso de la manera como se declaran plantillas tanto para clases como funciones. Espero te haya servido bastante como recordatorio, antes de que comencemos a realizar algunos ejemplos con plantillas en nuestra siguiente sesión.

Bibliografía

pozo, S. (01 de 03 de 2002). C++ con Clase. Obtenido de http://c.conclase.net/curso/?cap=040

Categorías: Noticias

0 Comentarios

Deja un comentario

Marcador de posición del avatar