COP 3503 Summer 2014 Project 4 - Due 8/5/14 - hard deadline 8/8/14. Project 4 is to be done as a group with your homework group. One submission per group, with summary of the contributions of each member as a section of the project report. Try to keep it roughly equal. You are to take the set and multiset specifications from projects 1 and 2, and extend them as follows. 1. Overload the following operators. Make sure you have correctly applied reference and const modifiers where appropriate. + (union), - (subtraction), = (deep copy), +=, -=, * (intersect), ^ (difference), *=, ^=, == (equality), < (proper subset), <= (subset), << (stream out), >> (stream in). 2. Use templates to allow a set or multiset hold items of any type. Multisets still have an integer associated with each item that indicates the number of that item in the multiset. 3. Use an appropriate class hierarchy to implement multiset as an extension of set, with overriding functions where needed. As usual, submit code files, makefile, user doc, README, and project report. I will provide a sample main() function and some input we will use to test your code.