Here is the design outut for one of the classes: Invoice.h
(What data members are needed?)
class Invoice
{
public:
/**
* Initialize an Invoice for up to maxItems LineItems
*/
Invoice();
Invoice(int maxItems);
Invoice(const Address& addr, int maxItems);
/**
* Formats the invoice
*/
string format();
/**
* Adds a line item for a product and quantity to
* this invoice.
*/
void add(const Product& p, int quantity);
};