// @(#)$Id: MutableMoney.lh,v 1.3 1997/07/30 20:03:02 leavens Exp $
#ifndef MutableMoney_lh
#define MutableMoney_lh
#include "Money.lh"
//@ uses MutableMoneyTrait;
//@ uses NoContainedObjects(MutableMoney);
class MutableMoney : public Money {
public:
//@ weakly simulates Money by toMoney;
MutableMoney(double amt) throw();
//@ behavior {
//@ requires inRange(money(rational(amt)));
//@ constructs self;
//@ ensures self' = money(rational(amt));
//@ }
MutableMoney(long int cts = 0L) throw();
//@ behavior {
//@ requires inRange(pennies(cts));
//@ constructs self;
//@ ensures self' = pennies(cts);
//@ }
virtual void AddIn(const Money & m2) throw();
//@ behavior {
//@ requires assigned(m2, pre) /\ inRange(self^ + m2\any);
//@ modifies self;
//@ ensures liberally self' + m2\any;
//@ example liberally self^ = money(300/1) /\ m2\any = money(400/1)
//@ /\ self' = money(700/1);
//@ }
virtual void SubtractIn(const Money & m2) throw();
//@ behavior {
//@ requires assigned(m2, pre) /\ inRange(self^ + m2\any);
//@ modifies self;
//@ ensures liberally self' - m2\any;
//@ example liberally self^ = money(700/1) /\ m2\any = money(400/1)
//@ /\ self' = money(300/1);
//@ }
virtual void MultiplyIn(double factor) throw();
//@ behavior {
//@ requires inRange(rational(factor) * self^);
//@ ensures liberally self' = rational(factor) * self^;
//@ }
};
#endif
[Index]
HTML generated using lcpp2html.