I tested the code and did not get the exception.
You loose the result of calculation though; do something like that:
f = d.plus(a,b);
_getch();
The code is pretty bad though; in particular, you should not hard-code this '100', especially if you use it in different places. How can you support it if you want to change this 100 to something else? The whole idea is wrong; you should pass the rank via constructor, for example. It's pointless to carry many unused elements. You really need to allocate the arrays dynamically. Also, what's "polynomial" in this class. A polynomial expressions can be operated in Computer Algebra Systems (CAS), for example, in symbolic calculations.
Please see this useful overview of returning the class instance:
http://www.informit.com/articles/article.aspx?p=25033&seqNum=3[
^].
—SA