Minh họa cách cài đặt operator overloading trong C++
#include<iostream>
#include<math.h>
using namespace std;
struct PS
{
int tu;
int mau;
};
//operator overloading doi toan tu <<
ostream & operator<<(ostream &os, PS p)
{
os<<p.tu<<"/"<<p.mau<<endl;
return os;
}
//operator overloading doi toan tu >>
istream & operator>>(istream &is, PS &p)
{
cout<<"Tu va mau:";
is>>p.tu>>p.mau;
return is;
}
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;
}
//operator overloading doi toan tu +
PS operator+(PS p1, PS p2)
{
PS p;
p.tu = p1.tu*p2.mau + p2.tu*p1.mau;
p.mau = p1.mau * p2.mau;
rutgon(p);
return p;
}
//operator overloading doi toan tu -
PS operator-(PS p1, PS p2)
{
PS p;
p.tu = p1.tu*p2.mau - p2.tu*p1.mau;
p.mau = p1.mau * p2.mau;
rutgon(p);
return p;
}
int main()
{
PS p1,p2,p3,p4,p;
cout<<"Nhap p1,p1:\n";
cin>>p1>>p2>>p3>>p4;
p = (p1 + p2)-(p3-p4);
cout<<p;
return 0;
}
Trương Đình Huy
- XU HƯỚNG CONTENT MARKETING HIỆN NAY: SỰ CHUYỂN DỊCH TỪ NỘI DUNG ĐẾN TRẢI NGHIỆM
- Sự kiện đối thoại ART.ITECTURE #2: Xây dựng cảm xúc - Cách âm nhạc và kiến trúc định hình trải nghiệm của con người
- Các khía cạnh đạo đức trong quảng cáo
- How to Use Collocations to Improve Your Essay
- Ngôi nhà thử nghiệm giải pháp xây dựng 5G

