Your class / data structure definition would typically go in a header file, and the code that uses that class / ADT would go in a code file. You said that you're using C++; STL has built in LIST types by the way.
Coefficients are not typically restricted to integers.
There's not too much point in storing a 'char' variable element unless you know that you're trying to handle polynomials in multiple variables. If you are using multiple variables and expressions that can symbolically refer to a polynomial or which when evaluated generate a polynomial, the coefficient and exponent might as well be expressions themselves, and the 'variable' itself turned into an expression.
A[0] * Q^E[0] + A[1] * Q^E[1] + ..... can certainly be a polynomial too depending on the values of A[], Q, and E[], but if you're trying to store the symbolic representation of it then a string or some kind of list either for the whole expression or for the sub elements of the expression would be appropriate. If you knew this was designed to be a polynomial in one variable, Q, you might just store the expression (string, numeric, or other type) element vectors A[] and E[] and treat Q as implicit or as a variable in the instance class and not associated with each term.
If you're just dealing purely numerically with a polynomial in one variable then just using a vector of some sufficiently precise numeric type like perhaps 'double' to represent the coefficients alone is convenient for numeric processing.