Funciones-miembro (métodos) genéricos
Ejemplo
Definición off-line de un método genérico perteneciente a una clase definida de forma explícita:
#include <iostream>
using namespace std;
class A { // clase definida de forma explícita
public:
int x;
template<class T> void fun(T t1, T t2); // método genérico
A (int a = 0) { x = a; } // Constructor por defecto
};
template<class T> void A::fun(T t1, T t2) { // Definición offline
cout << "Valor-1: " << t1
<< ", Valor-2: " << t2
<< ", Valor-x: " << x << endl;
}
int main(void) { // ==============
A a(7), b(14); // instancia dos objetos
a.fun(2, 3); // invocar método de instancia
b.fun('x', 'y'); // ídem.
return 0;
}
Salida:
Valor-1: 2, Valor-2: 3, Valor-x: 7
Valor-1: x, Valor-2: y, Valor-x: 14