Hướng dẫn cách sử dụng Hàm bạn (friend function) trong C++


#include<iostream>

#include<math.h>

using namespace std;

class PS

{

              public:

                             int tu,mau;

              friend PS add(PS p1, PS p2);

              friend istream &operator>>(istream &is, PS &p)

              {

                             cout<<"Tu, mau:";

                             is>>p.tu>>p.mau;

                             return is;

              }

              friend ostream &operator<<(ostream &os, PS p)

              {

                             os<<p.tu<<"/"<<p.mau<<endl;

                             return os;

              }

};

PS add(PS p1, PS p2)

{

                             PS tmp;

                             tmp.tu = p1.tu*p2.mau + p2.tu*p1.mau;

                             tmp.mau = p1.mau*p2.mau;

                             return tmp;

}

//USCLN

int UCLN(int a, int b)

{

              a=abs(a);

              b=abs(b);

              while(a!=b)

              {

                             if(a>b)

                                           a=a-b;

                             else

                                           b=b-a;

              }

              return a;

}

void rutgon(PS &p)

{

              int c=UCLN(p.tu,p.mau);

              p.tu=p.tu/c;

              p.mau=p.mau/c;

}

int main()

{

              PS p,p1,p2;

              cin>>p1;

              cin>>p2;

              p=add(p1,p2);

              rutgon(p);

              cout<<p<<endl;

              return 0;

}

Trương Đình Huy