1) Explain operator overloading. 2) What is the significance of operator overloading? 3) What operators can you overload? 4) Why would you use operator overloading? 5) Give an example of overloading the addition operator. 6) Suppose you want to overload a binary operator. How many arguments will your operator function have if it is not a member function? How many arguments will it have if it is a member function? 7) Consider a class, say Tempature class Temperature { int minTemp; int maxTemp; int currentTemp; public: Temperature(int, int, int); // prototypes for preincrement and postincrement // overloaded operators as member functions }; Write down the prototypes for preincrement and postincrement operators for this class. How are they different? Why are they different? 8) If the overloaded operators in the above example were made non-member functions, how would their prototypes in the class change and why? (Hint: Friend classes) 9) Overload the << operator for the temperature. How will the prototype for this be? 10) Suppose you overload the binary + operator for the temperature class. How will you define it to make the following code work? int main() { Temperature temp(20,40,25); temp + 20; 10 + temp; } Explain your answer choice.