//opoverloadfriendfunc.C
#include<iostream>
using namespace std;
class traffic {
int left, right;
public:
traffic() {}
traffic(int lt, int rt)
{
left = lt;
right = rt;
}
void show()
{
cout << "left :" << left;
cout << " right :" << right << endl;
}
friend traffic operator+(traffic ob1, traffic ob2);
friend traffic operator-(traffic ob1, traffic ob2);
friend traffic operator++(traffic &ob);
friend traffic operator--(traffic &ob);
};
traffic operator+(traffic ob1, traffic ob2)
{
traffic temp;
temp.left = ob1.left + ob2.left;
temp.right = ob1.right + ob2.right;
return temp;
}
traffic operator-(traffic ob1, traffic ob2)
{
traffic temp;
temp.left = ob1.left - ob2.left;
temp.right = ob1.right - ob2.right;
return temp;
}
traffic operator++(traffic &ob)
{
ob.left++;
ob.right++;
return ob;
}
traffic operator--(traffic &ob)
{
ob.left--;
ob.right--;
return ob;
}
int main()
{
traffic ob1(5, 10), ob2(10 , 20);
ob1.show();
ob2.show();
ob1 = ob1+ob2;
ob1.show();
cout << "**********************" << endl;
ob1 = ob1-ob2;
ob1.show();
cout << "**********************" << endl;
++ob1;
ob1.show();
cout << "**********************" << endl;
--ob2;
ob2.show();
return 0;
}
result:
left :5 right :10left :10 right :20
left :15 right :30
**********************
left :5 right :10
**********************
left :6 right :11
**********************
left :9 right :19
No comments:
Post a Comment