今天使用链表实现了一下多项式的算术加和乘操作,为了节省存储空间同时增加运算效率,链表中只存储了系数非零的项。同时还定义了默认构造,复制构造,赋值运算,operator<<运算等操作。
其中Polynomial.h的代码如下:
有几点收获总结如下:
1、即使定义了iostream头文件,在使用cout,ostream等结构时还是要加上std:: !!!
2、赋值运算必须返回*this,不能返回一个自定义的Polynomial对象;
3、.h文件中最好不要定义函数,因为一旦定义了某个函数,若此头文件被两个.cpp文件包含,就会出现Link error,提示函数重定义!
4、即使将某函数声明为友元,typed定义的类型在函数内依然不可见,如在operator<<中就不能直接使用iterator。
5、临时变量总是不安全的,它在语句结束时就被析构。若临时对象中包含指针,那么就容易出现未定义的值。