//opoverloadfunc.C
#include<iostream>
using namespace std;
class traffic {
int left, right;
public:
traffic() {} //empty constructor
traffic(int lt, int rt)
{
left = lt;
right = rt;
}
void show()
{
cout << "left: " << left << endl;
cout << "right: " << right << endl;
}
//operator overloading functions for + , - , * , / , = , ++ , --
traffic operator+(traffic ob1);
traffic operator-(traffic ob1);
traffic operator*(traffic ob1);
traffic operator/(traffic ob1);
traffic operator++();
traffic operator--();
~traffic()
{
cout << "in destructor" << endl;
}
};
using namespace std;
class traffic {
int left, right;
public:
traffic() {} //empty constructor
traffic(int lt, int rt)
{
left = lt;
right = rt;
}
void show()
{
cout << "left: " << left << endl;
cout << "right: " << right << endl;
}
//operator overloading functions for + , - , * , / , = , ++ , --
traffic operator+(traffic ob1);
traffic operator-(traffic ob1);
traffic operator*(traffic ob1);
traffic operator/(traffic ob1);
traffic operator++();
traffic operator--();
~traffic()
{
cout << "in destructor" << endl;
}
};
traffic traffic::operator+(traffic ob1)
{
traffic temp;
temp.left = left + ob1.left;
temp.right = right + ob1.right;
return temp;
}
traffic traffic::operator-(traffic ob1)
{
traffic temp;
temp.left = left - ob1.left;
temp.right = right - ob1.right;
return temp;
}
traffic traffic::operator*(traffic ob1)
{
traffic temp;
temp.left = left * ob1.left;
temp.right = right * ob1.right;
return temp;
}
traffic traffic::operator/(traffic ob1)
{
traffic temp;
temp.left = left/ob1.left;
temp.right = right/ob1.right;
return temp;
}
{
traffic temp;
temp.left = left + ob1.left;
temp.right = right + ob1.right;
return temp;
}
traffic traffic::operator-(traffic ob1)
{
traffic temp;
temp.left = left - ob1.left;
temp.right = right - ob1.right;
return temp;
}
traffic traffic::operator*(traffic ob1)
{
traffic temp;
temp.left = left * ob1.left;
temp.right = right * ob1.right;
return temp;
}
traffic traffic::operator/(traffic ob1)
{
traffic temp;
temp.left = left/ob1.left;
temp.right = right/ob1.right;
return temp;
}
traffic traffic::operator++()
{
left++;
right++;
return *this;
}
traffic traffic::operator--()
{
left--;
right--;
return *this;
}
int main()
{
traffic ob1(10, 20), ob2(2,4);
ob1.show();
ob2.show();
ob1 = ob1+ob2;
ob1.show();
ob1 = ob1 - ob2;
ob1.show();
{
left++;
right++;
return *this;
}
traffic traffic::operator--()
{
left--;
right--;
return *this;
}
int main()
{
traffic ob1(10, 20), ob2(2,4);
ob1.show();
ob2.show();
ob1 = ob1+ob2;
ob1.show();
ob1 = ob1 - ob2;
ob1.show();
++ob1;
++ob2;
ob1.show();
ob2.show();
--ob1;
--ob2;
ob1.show();
ob2.show();
ob1 =(ob1*ob2);
cout << "multi" << endl;
ob1.show();
ob1 = ob1/ob2;
ob1.show();
return 0;
}
++ob2;
ob1.show();
ob2.show();
--ob1;
--ob2;
ob1.show();
ob2.show();
ob1 =(ob1*ob2);
cout << "multi" << endl;
ob1.show();
ob1 = ob1/ob2;
ob1.show();
return 0;
}
No comments:
Post a Comment