00001 #if !defined(__BANKACCOUNT_HPP)
00002 #define _BANKACCOUNT_HPP
00003
00004 00005 00006 00007 00008 00009 00010 00011 00012 00013 00014 00015 00016 00017 00018 00019 00020 00021 00022
00023
00024 #if !defined(__COMMON_HPP)
00025 #include <Common.hpp>
00026 #endif
00027
00028 #if !defined(__ABSTRACTBANKACCOUNT_HPP)
00029 #include <AbstractBankAccount.hpp>
00030 #endif
00031
00032 DECLARE_CLASS( BankAccount );
00033
00040
00041 class BankAccount : public AbstractBankAccount
00042 {
00043 public:
00044
00045
00046
00047
00048
00050
00051 BankAccount( void );
00052
00054
00055 BankAccount( AmountCref )
00056 throw( InvalidAmountException );
00057
00059
00060 BankAccount( BankAccountCref );
00061
00063
00064 virtual ~BankAccount( void );
00065
00066
00067
00068
00069
00075
00076 BankAccountRef operator=( BankAccountCref );
00077
00083
00084 bool operator==( BankAccountCref ) const;
00085
00086
00087
00088
00093
00094 virtual AmountCref getBalance(void) const;
00095
00096
00097
00098
00106
00107 virtual void withdrawFunds(Amount)
00108 throw(InsufficientFundsException);
00109
00114
00115 virtual void depositFunds(Amount)
00116 throw(InsufficientFundsException);
00117
00118 private:
00119
00121
00122 Amount theAvailableFunds;
00123 };
00124
00125 #endif
00126
00127 00128 00129 00130 00131 00132 00133
00134