Disponible la nueva versión "donationware" 7.3 de OrganiZATOR
Descubre un nuevo concepto en el manejo de la información.
La mejor ayuda para sobrevivir en la moderna jungla de datos la tienes aquí.

Curso C++

[Home]  [Inicio]  [Índice]


Instanciación explícita

Ejemplo:

Definición off-line de un método genérico definido de forma explícita.  En este caso se trata de un método de la clase de los enteros (int) que está preconstruida en el lenguaje.

#include <iostream>
using namespace std;

template<class T> bool igual(T& a, T& b) { // funcion generica
  return (a == b) ? true : false;
};

bool igual(int& a, int& b) {        // instancia explícita
  return (abs(a-b) < 5) ? true : false;
};
 
template bool igual<float>(float& a, float& b); // instanciación explicita

void main() {         // =====================
  int x = 2, y = 3;
  double d1 = 2.0, d2 = 2.2;
  float f1 = 2.0, f2 = 2.2;
  long double l1 = 2.0, l2 = 2.2;

  if ( igual(x, y) )
     cout << "enteros iguales" << endl;
  else
     cout << "enteros distintos" << endl;
  if ( igual(d1, d2) )
     cout << "doubles iguales" << endl;
  else
     cout << "doubles distintos" << endl;
  if ( igual(f1, f2) )
     cout << "float iguales" << endl;
  else
     cout << "float distintos" << endl;
  if ( igual(l1, l2) )            // instanciación implícita
     cout << "long double iguales" << endl;
  else
     cout << "long double distintos" << endl;
}

Salida:

enteros iguales
doubles distintos
float distintos
long double distintos