Header For The Account Class
#ifndef ACCOUNT_H
#define ACCOUNT_H
#ifndef RCPOINTE_H
#include "rcpointe.h"
#endif
#ifndef DARRAY_H
#include "darray.h"
#endif
#include
#if defined(ACCOUNT_TESTDLL)
#define ACCOUNT_CLASS class
#elif defined (ACCOUNT_BUILDDLL)
#define ACCOUNT_CLASS class _export
#else
#define ACCOUNT_CLASS class _import
#endif
ACCOUNT_CLASS Account
{
public:
Account();
Account(const string &name,const string &ssNumber,const string &acctNumber,int dispersal,double balance);
void setValues(const string &name,const string &ssNumber,const string &acctNumber,int dispersal,double balance);
//Operator functions and disablers
virtual void deposit(double,char*);//return a statement of current balance
virtual int withdrawal(double,char*);
virtual int canWithdraw()=0;
virtual int canDeposit()=0;
virtual int interestDispersal()=0;
//The following are used to initialize dialog with account information
void getBalance(char*);// character string with balance
void getName(char*);//get name
void getAcctNumber(char*);// get account number
void getSSNumber(char*);//get social security number
void getDispersal(char*);//get method used to distribute interest
void setDispersal(int);//set the mode of interest dispersal.
int getDispersal();//when number is needed
virtual void printString(char *);
virtual void getType(char*)=0;
// When information edited, the whole account record is deleted and
// replaced with a new record. Account number is fixed and balance no
// shown. Balance only altered by withdraw and deposit.
static Account* create(int i); // used to create a counted pointer in main
static Array getKinds();
static string getKindString(int);
static Array getDispersals();
static string getDispersalString(int);
private:
static char* _kind[];
static char* _dispersals[];
double _balance;
string _acctNumber;
string _name;
string _ssNumber;
int _dispersal;
virtual Account* clone()=0;
};
typedef RcPointer AcctPtr;
ACCOUNT_CLASS AccountList :public Array
{
public:
AccountList(){}
};
#endif