home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
C++ for Dummies (3rd Edition)
/
C_FD.iso
/
CHAP21
/
CHAP21_1.CPP
next >
Wrap
C/C++ Source or Header
|
1996-09-02
|
1KB
|
56 lines
// Chap21_1.cpp
class USDollar
{
friend USDollar operator+(USDollar&, USDollar&);
friend USDollar& operator++(USDollar&);
public:
USDollar(unsigned int d, unsigned int c);
protected:
unsigned int dollars;
unsigned int cents;
};
USDollar::USDollar(unsigned int d, unsigned int c)
{
dollars = d;
cents = c;
while (cents >= 100) {
dollars++;
cents -= 100;
}
}
//operator+ - add s1 to s2 and return the result
// in a new object
USDollar operator+(USDollar& s1, USDollar& s2)
{
unsigned int cents = s1.cents + s2.cents;
unsigned int dollars = s1.dollars + s2.dollars;
USDollar d(dollars, cents);
return d;
}
//operator++ - increment the specified argument;
// change the value of the provided object
USDollar& operator++(USDollar& s)
{
s.cents++;
if (s.cents >= 100)
{
s.cents -= 100;
s.dollars++;
}
return s;
}
int main()
{
USDollar d1(1, 60);
USDollar d2(2, 50);
USDollar d3(0, 0);
d3 = d1 + d2; //overloaded operators are straightforward in use
++d3;
return 0;
}