/////// File FreeChecking.C /////// #include #include "FreeChecking.H" float FreeChecking::min_bal = 500.0; float FreeChecking::service_fee = 18.0; FreeChecking::FreeChecking (unsigned n, double b, char* owner) : Account (n, b, owner), _free (b >= min_bal) { } int FreeChecking::Withdraw (double amt) { int ok = Account::Withdraw (amt); if ( ok != -1 && GetBalance() < min_bal ) { _free = 0; } return (ok); } void FreeChecking::ChargeFee() { if ( ! _free ) { cout << "Charging fee for account " << _acct_no << endl; if ( Withdraw (service_fee) == -1 ) { cerr << "Fee: insufficient balance " << "for account " << _acct_no << endl; } } _free = (GetBalance() >= min_bal); } void FreeChecking::Display (ostream& out) const { out << "Free Checking Account\n"; Account::Display(); }