/** Overload assignment operator = **/
Void operator = (const Distance & D)
{
Feet = D. feet;
Inches = D. inches;
}
/** Overload the minus sign operator -**/
Distance operator -()
{
Feet =-feet;
Inches =-inches;
Return Distance (feet, inches );
}
/** Overload prefix auto-subtraction operator --**/
Distance operator --()
{
-- Feet;
-- Inches;
Return Distance (feet, inches );
}
/** Overload suffix auto-subtraction operator --**/
Distance operator -- (int)
{
Distance Temp (feet, inches );
Feet --;
Inches --;
Return Temp;
}
[Cpp]
# Include <iostream>
Using namespace std;
Class Distance
{
Private:
Double feet; // 0 to infinite
Double inches; // 0 to 12
Public:
// Required constructors
Distance ()
{
Feet = 0.0;
Inches = 0.0;
}
Distance (double f, double I)
{
Feet = f;
Inches = I;
}
/** Overload assignment operator = **/
Void operator = (const Distance & D)
{
Feet = D. feet;
Inches = D. inches;
}
/** Overload the minus sign operator -**/
Distance operator -()
{
Feet =-feet;
Inches =-inches;
Return Distance (feet, inches );
}
/** Overload prefix auto-subtraction operator --**/
Distance operator --()
{
-- Feet;
-- Inches;
Return Distance (feet, inches );
}
/** Overload suffix auto-subtraction operator --**/
Distance operator -- (int)
{
Distance Temp (feet, inches );
Feet --;
Inches --;
Return Temp;
}
// Method to display distance
Void displayDistance ()
{
Cout <"Feet:" <feet <"Inches:" <inches <endl;
}
};
Int main ()
{
Distance D1 (19.91,-20.13), D2;
Cout <"\ nD1 Distance now: \ n ";
D1.displayDistance ();
-- D1;
Cout <"\ nD1 Distance after -- D1: \ n ";
D1.displayDistance ();
-D1;
Cout <"\ nD1 Distance after-D1: \ n ";
D1.displayDistance ();
Cout <"\ nD1 --. displayDistance (): \ n ";
D1 --. displayDistance ();
// Use assignment operator
D2 = D1 --;
Cout <"\ nafter D2 = D1 -- Distance of D2: \ n ";
D2.displayDistance ();
Cout <"\ nafter D2 = D1 -- Distance of D1: \ n ";
D1.displayDistance ();
Return 0;
}
/**************************
Running result:
D1 Distance now:
Feet: 19.91 Inches:-20.13
D1 Distance after -- D1:
Feet: 18.91 Inches:-21.13
D1 Distance after-D1:
Feet:-18.91 Inches: 21.13
D1 --. displayDistance ():
Feet:-18.91 Inches: 21.13
After D2 = D1 -- Distance of D2:
Feet:-19.91 Inches: 20.13
After D2 = D1 -- Distance of D1:
Feet:-20.91 Inches: 19.13
Process returned 0 (0x0) execution time: 0.819 s
Press any key to continue.
***************************/
# Include <iostream>
Using namespace std;
Class Distance
{
Private:
Double feet; // 0 to infinite
Double inches; // 0 to 12
Public:
// Required constructors
Distance ()
{
Feet = 0.0;
Inches = 0.0;
}
Distance (double f, double I)
{
Feet = f;
Inches = I;
}
/** Overload assignment operator = **/
Void operator = (const Distance & D)
{
Feet = D. feet;
Inches = D. inches;
}
/** Overload the minus sign operator -**/
Distance operator -()
{
Feet =-feet;
Inches =-inches;
Return Distance (feet, inches );
}
/** Overload prefix auto-subtraction operator --**/
Distance operator --()
{
-- Feet;
-- Inches;
Return Distance (feet, inches );
}
/** Overload suffix auto-subtraction operator --**/
Distance operator -- (int)
{
Distance Temp (feet, inches );
Feet --;
Inches --;
Return Temp;
}
// Method to display distance
Void displayDistance ()
{
Cout <"Feet:" <feet <"Inches:" <inches <endl;
}
};
Int main ()
{
Distance D1 (19.91,-20.13), D2;
Cout <"\ nD1 Distance now: \ n ";
D1.displayDistance ();
-- D1;
Cout <"\ nD1 Distance after -- D1: \ n ";
D1.displayDistance ();
-D1;
Cout <"\ nD1 Distance after-D1: \ n ";
D1.displayDistance ();
Cout <"\ nD1 --. displayDistance (): \ n ";
D1 --. displayDistance ();
// Use assignment operator
D2 = D1 --;
Cout <"\ nafter D2 = D1 -- Distance of D2: \ n ";
D2.displayDistance ();
Cout <"\ nafter D2 = D1 -- Distance of D1: \ n ";
D1.displayDistance ();
Return 0;
}
/**************************
Running result:
D1 Distance now:
Feet: 19.91 Inches:-20.13
D1 Distance after -- D1:
Feet: 18.91 Inches:-21.13
D1 Distance after-D1:
Feet:-18.91 Inches: 21.13
D1 --. displayDistance ():
Feet:-18.91 Inches: 21.13
After D2 = D1 -- Distance of D2:
Feet:-19.91 Inches: 20.13
After D2 = D1 -- Distance of D1:
Feet:-20.91 Inches: 19.13
Process returned 0 (0x0) execution time: 0.819 s
Press any key to continue.
***************************/