Line: 1 to 1  

Classes and Objects with friendsGoalEnhance Date function with friend and operator methods Steps  
Changed:  
< < 
 
> > 
1. Start with the Date class developed previously in class. A copy is here : DateClass
3. Can we do arithmetic with dates?
Algorithms converted to friend functions: link
 
Line: 1 to 1  

 
Changed:  
< <  Classes and Objects Example  
> >  Classes and Objects with friendsGoal  
Changed:  
< <  //Class for a bank account:
class BankAccount
{
public:
BankAccount(int dollars, int cents, double rate);
//Initializes the account balance to $dollars.cents and
//initializes the interest rate to rate percent.
BankAccount(int dollars, double rate); //Initializes the account balance to $dollars.00 and //initializes the interest rate to rate percent. BankAccount( ); //Initializes the account balance to $0.00 and the interest rate to 0.0%. void update( ); //Postcondition: One year of simple interest has been added to the account //balance. double get_balance( ); //Returns the current account balance. double get_rate( ); //Returns the current account interest rate as a percentage. void output(ostream& outs); //Precondition: If outs is a file output stream, then //outs has already been connected to a file. //Postcondition: Account balance and interest rate //have been written to the stream outs. private: double balance; double interest_rate; double fraction(double percent); //Converts a percentage to a fraction. For example, fraction(50.3) //returns 0.503. }; int main( ) { BankAccount account1(100, 2.3), account2; cout << "account1 initialized as follows:\n"; account1.output(cout); cout << "account2 initialized as follows:\n"; account2.output(cout); account1 = BankAccount(999, 99, 5.5); cout << "account1 reset to the following:\n"; account1.output(cout); return 0; } BankAccount::BankAccount(int dollars, int cents, double rate) { if ((dollars < 0)  (cents < 0)  (rate < 0)) { cout << "Illegal values for money or interest rate.\n"; } balance = dollars + 0.01*cents; interest_rate = rate; } BankAccount::BankAccount(int dollars, double rate) { if ((dollars < 0)  (rate < 0)) { cout << "Illegal values for money or interest rate.\n"; } balance = dollars; interest_rate = rate; }
BankAccount::BankAccount( ) : balance(0), interest_rate(0.0) { //Body intentionally empty. } //Uses iostream: void BankAccount::output(ostream& outs) { outs.setf(ios::fixed); outs.setf(ios::showpoint); outs.precision(2); outs << "Account balance $" << balance << endl; outs << "Interest rate " << interest_rate << "%" << endl; } %ENDCODE% Start Project 7  
> >  Enhance Date function with friend and operator methods
Steps
