#include using std::cout; using std::endl; using std::string; int valor = 12; // 'valor' global template T soma1(T a, T b) { T res; res = a + b; return res; } template T2 soma2 (T1 a, T2 b) { T2 res; res = a + b; return res; } int main() { int valor = 90; // 'valor' local cout << "O valor local definido eh...: " << valor << endl; cout << "O valor global definido eh..: " << ::valor << endl; // :: operador de resolução de escopo cout << endl; cout << "Somando dois inteiros...................: " << soma1(valor, ::valor) << endl; cout << "Agora, somando dois floats..............: " << soma1(3.4, 7.8) << endl; cout << "Soma inteiro com float, retornando float: " << soma2(soma1(valor, ::valor), 5.6) << endl; cout << endl; system("PAUSE"); return 0; }