#include<iostream> using namespace std; const double PI = 3.1415926; template <class T> T min(T a[], int n){ int i; T minv = a[0]; for (i = 1; i < n; i++){ if (a[i] < minv) minv = a[i]; } return minv; } template<class T1> double Circle_Square(T1 x){ cout << "From template function"; return x*x*PI; } double Circle_Square(long x){ cout << "From long type function"; return x*x*PI; } int main(){ int a[] = { 2, 4, 1, 5, 6, 87, 5, 5, 6 }; double b[] = { 2.33, 4.01, 3.0, 1.011 }; cout << "min of a[]: " << min(a, 9) << endl; cout << "min of b[]: " << min(b, 4) << endl; int r1 = 1; double r2 = 2.0; long r3 = 3; //use the Overloaded functions if has, then refer to the template functions cout << " r1 " << Circle_Square(r1) << endl; cout << " r2 " << Circle_Square(r2) << endl; cout << " r3 " << Circle_Square(r3) << endl; int i; cin >> i; return 0; }
Results: