// This is the HEADER FILE money.h. This is the INTERFACE for the class
// Money. Values of this type are amounts of money in U.S. currency.
#ifndef MONEY_H
#define MONEY_H
#include <iostream>
class Money
{
long all_cents; // monetary value stored as pennies
public:
// Initializes the object to $0.00.
Money(void);
// Initializes the object to dollars*100 cents.
Money(long dollars);
// Initializes the object to dollars*100 + cents.
Money(long dollars, short cents);
// Postcondition: return value is sum of calling object and amount.
// neither amount nor calling object are changed.
Money add(const Money & amount) const;
// Postcondition: return value is difference of calling object and amount.
// neither amount nor calling object are changed.
Money subtract(const Money & amount) const;
// Postcondition: return value is arithmetic negation of calling object.
// calling object is not changed.
Money negate(void) const;
// Returns true if the calling object equals the amount, false otherwise.
bool equals(const Money & amount) const;
// Returns true if the calling object is less than the amount,
// false otherwise.
bool less(const Money & amount) const;
// Postcondition: calling object's value is read from the stream
// in normal U.S. format: $ddd.cc.
void input(std::istream & ins);
// Postcondition: calling object's value is printed on the stream
// in normal U.S. format: $ddd.cc. (calling object
// is not changed)
void output(std::ostream & outs) const;
// Returns amount of money in decimal format.
double get_value(void) const;
};
#endif
Note: This interface file is adapted from ones given in textbooks by Walter Savitch.