Question: c++ 4. Lab Exercise Overloading Part 1 Change the sameDay function into a overloaded == operator. This will be a member function as demonstrated in

c++

4. Lab Exercise Overloading

Part 1

  1. Change the sameDay function into a overloaded == operator. This will be a memberfunction as demonstrated in the notes. Remember that you will want to compare the month, day, and year.
  2. Add an overloaded ++ operator (as a member function, shown in the notes)
  3. Just for fun, change the printDate function into an overloaded << operator as a non-member. The prototype in the .h will look like this:
  4. ostream& operator<<(ostream&, const Date&);

    The function itself will look like this:

    ostream& operator<<(ostream& os, const Date& myDate) { os << "Date is: " << myDate.getMonth() << "/" << myDate.getDay() << "/" << myDate.getYear() << endl; return os; }
  5. Explain why operator<< must be overloaded as a non-member.

Part 2

Overload the + operator so that the following lines of code run in main:

 Date date3, date4; date3 = date1 + 82; date4 = 6 + date2;

More Details:

  • Define two functions. The prototypes will look like this:
    Date operator+ (const Date&, int); Date operator+ (int, const Date&);
    Are they member or non-member functions? (Notice how many arguments they have)

  • Both functions will create a temporary date and return it.

  • Think about reusing as much code as possible.
    1. For one implementation of operator+, can you call the operator++ function?
    2. For the second implementation of operator+, can you call the first operator+ function?
    3. Together these two functions should be no more that 10 lines of code in the bodies. If you make it longer, you are working too hard.

  • Which of the two functions must be defined as a non-member? Why?

Sample Run (after Part 2)

>./main Date is: 0/0/0 Please enter integer Year, Day, and Month separated by spaces: 1 1 1 Please enter integer Year, Day, and Month separated by spaces: 2 2 2 Date is: 1/1/1 Date is: 2/2/2 The dates are different. After incrementing Date is: 1/2/1 Date is: 2/3/2 After addition Date is: 1/2/1 Date is: 2/3/2 Date is: 3/25/1 Date is: 2/9/2 

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!