Develop class Polynomial to represent polynomial with a maximum degree of 9, where each object represents a polynomial of the form p(x)= a0+ a1x^1+ a2x^2+ a3x^3+ a4x^4+ a5x^5+ a6x^6+ a7x^7+ a8x^8+ a9x^9. The internal representation of a polynomial is an array to store the coefficients, a0a9 for the polynomial. Develop a complete class containing proper constructor and destructor functions as well as set and get functions. The class should also provide the following overloaded operator capabilities:
a- Overload the addition operator (+) to add two Polynomials.
b- Overload the subtraction operator (-) to subtract two Polynomials.
c- Overload the assignment operator (=) to assign a Polynomial to another.
d- Overload the multiplication operator (*) to multiply two Polynomials. (you can use lower degree polynomial to test this capability, as the maximum degree you can store is 9).
e- Overload the addition assignment operator (+=)
f- Overload the stream insertion operator (<<)
Create appropriate test for the overloaded operators