Cách sử dụng template class, function trong C++
Cách sử dụng template class, function trong C++
template <class T> T Max(T a, T b){ return (a<b)? b : a; }
template <class T> T Max(T a, T b, T c){ return max(a, max(b, c)); }
template <class T> T Max(T *a, int n){
T x = a[0];
for(int i=1; i<n; i++)
x = Max(x, a[i]);
return x;
}
class Fraction{
private:
int num, den;
public:
Fraction (int, int);
bool operator < (Fraction);
friend ostream &operator<<(ostream &, Fraction&);
};
Fraction::Fraction (int a, int b){ num = a; den = b; }
bool Fraction::operator<(Fraction b)
{ return 1.0*this->num/this->den < 1.0*b.num/b.den; }
ostream &operator<<(ostream &os, Fraction &f)
{ cout<<f.num<<"/"<<f.den; return os; }
//test
int a[]={2, 9, 8, 4};
cout<<Max(1,2)<<" "<<Max(2.13, 1.21)<< " "<<Max(a,4)<<endl;
cout<< Max(Fraction(1,2),Fraction(10,2))<<endl;
cout<<Max(1,3,2)<<" "<<Max(2.13, 1.21, 0.12) ;
Fraction f[] = { Fraction(1,2) , Fraction(7,2) , Fraction(3,2) };
cout<<Max(f,3);
Trương Đình Huy