#include <iostream> using namespace std; int main() { int n; cin >> n; double a[n]; for(int i=0; i<n; i++) cin >> a[i]; Polynomial p(a, n); Polynomial pp; p = p; pp = p; cout << pp << endl; return 0; } /* 请在这里填写答案,你只需要完成复制赋值运算符函数即可,其他均已由系统实现 */class Polynomial{ private: double *coefficients; //动态数组,用来存储多项式各项系数 int size; //多项式的大小,项数,最高次项的幂为size-1 public: Polynomial(int size=1); //已实现 Polynomial(double* coets, int size);//已实现 friend ostream& operator<<(ostream& os, const Polynomial& p); //已实现 ~Polynomial(); //已实现 Polynomial(const Polynomial &poly); //已实现 Polynomial& operator=(const Polynomial& p); };
时间: 2023-06-19 14:03:48 浏览: 93
使用include <iostream>时一定要加using namespace std
在这里给出复制赋值运算符函数的实现:
```
Polynomial& Polynomial::operator=(const Polynomial& p) {
if (this == &p) return *this; // 处理自我赋值的情况
delete[] coefficients; // 释放原有内存
size = p.size;
coefficients = new double[size];
for (int i = 0; i < size; i++) {
coefficients[i] = p.coefficients[i];
}
return *this;
}
```
该函数首先判断是否是自我赋值,若是则直接返回原对象。然后释放原有内存,重新分配内存并复制数据。最后返回修改后的对象。
阅读全文