1. What are some pros and cons of using overloading?
Ans. Pros: 
	a) It removes code readability and allows code reusability.
	b) It saves memory space and gives consistency.
	c) It brings flexibility to code.
	d) The function can perform different operations and hence it eliminates the use of different function names for the same kind of operations.
     Cons:
	a) Function declarations that differ only in the return type cannot be overloaded.
	b) Member function declarations with the same name and the same parameter types cannot be overloaded if any of them is a static member function 	   declaration.
	c) The main disadvantage is that it requires the compiler to perform name mangling on the function name to include information about the argument 	   types.

2. What are some pros and cons of using templates?
Ans. Pros:
	a) Used to develop a set of typesafe classes.
	b) Generic functions can be created using it.
	c) It can drastically reduce development time.
	d) Use templates in situations that result in duplication of the same code for multiple types.
	   For example, you can use function templates to create a set of functions that apply the same algorithm to different data types.
     Cons:
	a) Some compilers exhibited poor support for templates. So, the use of templates could decrease code portability.
	b) It can be difficult to debug code that is developed using templates. 
	c) Though STL itself is a collection of template classes, templates are not used to write conventional libraries.

3. Which was easier for you overloading or templates, and why?
Ans. Overloading was easier for me to understand. It simply has different parameters but the function name is same. 
     In templates, I found it hard to understand at first glance.

4. If you worked in a group, please note the contributions that you made to the code. If you do not, please write "I worked by myself".
Ans. I worked myself. 