codice:
#include <iostream>
#include <string>
template<class T>
T max(T arg1, T arg2){
if (arg1 >= arg2)
return arg1;
else
return arg2;
}
int main(){
std::cout << max(5, 3) << std::endl;
std::cout << max(5.6, 3.2) << std::endl;
std::cout << max(std::string("a"), std::string("b")) << std::endl;
return 0;
}
Mi raccomando, fai attenzione alle due stringhe "a" e "b": non sono 'char*' ma oggetti 'string' (STL).
Nota che in questo semplice caso il compilatore
capisce da solo di che tipo sono gli argomenti, in casi ambigui devi
specificarlo tu.
E' quando ti parlavo delle chiamate con argomento implicito o esplicito (swap() e swap< int >() ad esempio).
Ultima cosa: il modo per overloadare una funzione template te l'ho illustrato nell'altro thread, può servire. :adhone:
Ciao.