Unary Operator Overloading
-
Upload
kristina-gallagher -
Category
Documents
-
view
226 -
download
0
Transcript of Unary Operator Overloading
-
8/10/2019 Unary Operator Overloading
1/9
Unary Operator overloading
#include
using namespace std;
//Increment and decrement overloading
class Inc {
private:
int count ;
public:
Inc() {
//Default constructor
count = 0 ;
}
Inc(int C) {
// Constructor with Argument
count = C ;
}
Inc operator ++ () {
// Operator Function Definition
// for prefix
return Inc(++count);
}
-
8/10/2019 Unary Operator Overloading
2/9
Inc operator ++ (int) {
// Operator Function Definition
// with dummy argument for postfix
return Inc(count++);
}
Inc operator -- () {
// Operator Function Definition
// for prefix
return Inc(--count);
}
Inc operator -- (int) {
// Operator Function Definition
// with dummy argument for postfix
return Inc(count--);
}
void display(void) {
cout
-
8/10/2019 Unary Operator Overloading
3/9
cout
-
8/10/2019 Unary Operator Overloading
4/9
cout
-
8/10/2019 Unary Operator Overloading
5/9
int den; // denominator
public:
void show();
Rational(int=1,int=1);
void setnumden(int,int);
Rational add(Rational object);
Rational operator+(Rational object);
bool operator==(Rational object);
bool operator!=(Rational object);
};
void Rational::show() {
cout
-
8/10/2019 Unary Operator Overloading
6/9
b = a;
a = temp;
}
while(a != 0 && b != 0) {
if(a % b == 0)
break;
temp = a % b;
a = b;
b = temp;
}
num = x / b;
den = y / b;
}
Rational Rational::add(Rational object) {
int new_num = num * object.den + den * object.num;
int new_den = den * object.den;
return Rational(new_num, new_den);
}
Rational Rational::operator+(Rational object) {
int new_num = num * object.den + den * object.num;
int new_den = den * object.den;
return Rational(new_num, new_den);
}
-
8/10/2019 Unary Operator Overloading
7/9
bool Rational::operator==(Rational object) {
return (num == object.num && den == object.den);
}
bool Rational::operator!=(Rational object) {
return (num != object.num || den != object.den);
}
int main() {
Rational obj1(1,4), obj2(210,840), result1;
result1 = obj1.add(obj2);
result1.show();
Rational obj3(1,3), obj4(33,99), result2;
result2 = obj3 + obj4;
result2.show();
Rational obj5(10,14), obj6(25,35), obj7(2,3), obj8(1,2);
if(obj5 == obj6) {
cout
-
8/10/2019 Unary Operator Overloading
8/9
}
return 0;
}
Function Templates
#include
#include
template
void swap(t &x,t &y)
{
t temp=x;
x=y;
y=temp;
}
void fun(int a,int b,float c,float d)
{
cout
-
8/10/2019 Unary Operator Overloading
9/9
}
void main()
{
int a,b;
float c,d;
clrscr();
couta>>b;
coutc>>d;
fun(a,b,c,d);
getch();
}