Beruflich Dokumente
Kultur Dokumente
Plantillas (templates)
Motivacin
Motivacin
Paradigmas de programacin
Programacin orientada a los datos Algoritmos + estructuras de datos Programacin orientada a objetos
Programacin genrica
Motivacin
Definimos un tipo de dato que permita representar objetos con ciertas caractersticas comunes. Definamos tambin qu operaciones pueden aplicarse a este tipo y sus reglas de uso.
En la programacin genrica
Construimos algoritmos genricos que permiten representar acciones con ciertas caractersticas comunes. Definimos tambin a que tipos de datos puede aplicarse este algoritmo y sus reglas de uso.
Son un mecanismo C++ que permite que un tipo pueda ser utilizado como parmetro en la definicin de una clase o una funcin. El mecanismo de plantillas C++ es en realidad un generador automtico de cdigo parametrizado. Las plantillas o templates son programas que generan programas (meta-programacin) La funcin o clase genrica se define en tiempo de compilacin
template <class T> void miFuncion(T& ref) {/* declaracin de funcin genrica */};
template <class T> class miClase {/* declaracin de clase genrica */};
Invocando a max
int i, j; i=10; j=5; ...
int k = max(i,j);
Invocando a max
UnaClase a, b; ...
UnaClase c = max(a,b);
Ejemplos:
template <class A, class B> void func(A, B);
template <class A, int x> void func(A, int);
Plantillas de clases
Ejemplo:
template <class T> class Minimax { public: T min(T a, T b); T max(T a, T b); }; template <class T> T Minimax<T>::min(T a, T b) {return (a<b)?a:b; }; template <class T> T Minimax<T>::max(T a, T b) {return (a>b)? a:b; };
Plantillas de clases
. . . int main() { // con enteros int p,q; cin >>p>>q; Minimax<int> mm1; cout<<El menor es:<< mm1.min(p,q)<<endl; // con flotantes float u,w; cin >>u>>w; Minimax<float> mm2; cout<<El mayor es:<< mm2.max(u,w)<<endl; return 0; }