c++ - How is this private data member of a base class being accessed by a derived class? -
i have private data member called balance in base class called bankaccount. wanted derived class checkingaccount able use balance made protected i've noticed derived class seems able still access balance when put in private section of base class. thought impossible? know muight going on?
base class:
class bankaccount { public: bankaccount(); void setaccountinfo(int accountnumtemp, double balancetemp); void applytransaction(char accounttype, char transactiontypetemp, int amounttemp, int j); private: int accountnumber; double balance; };
derived class:
class checkingaccount: public bankaccount { public: checkingaccount(); double applytransaction(char transactiontypetemp, int amounttemp, int c, double balance); private: float interestrate; int minimumbalance; float servicecharge; };
base class function member derived class function member receives datamember in question:
void bankaccount:: applytransaction(char accounttype, char transactiontypetemp, int amounttemp, int j) { int c; c = j; checkingaccount ca; balance = ca.applytransaction(transactiontypetemp, amounttemp, c, balance); }
derived class function member private data member of base class used:
double checkingaccount:: applytransaction(char transactiontypetemp, int amounttemp, int c, double balance) { if (transactiontypetemp == 'd') { balance = balance + amounttemp; } else if (transactiontypetemp == 'w') { if (balance < amounttemp) { cout << "error: transaction number " << c + 1 << " never occured due insufficent funds." << endl; } else { balance = balance - amounttemp; if(balance < minimumbalance) //if last transaction brought balance below minimum balance { balance = (balance - servicecharge); //apply service charge } } } return balance; }
checkingaccount::applytransaction
doesn't see or touch base class's balance
member. it's using, resetting , returning own balance
argument.
Comments
Post a Comment