C++编程题找错,很急,谢谢

发布网友 发布时间:2022-04-21 03:01

我来回答

3个回答

热心网友 时间:2023-11-04 20:16

主要问题出在下面的这个函数:
//做了两个修改1.把函数的返回值改为了引用,当然函数声明也得该
//2.把tmp改成了局部静态变量
//或者改为全局变量

Polynomial & Polynomial::operator+ (const Polynomial& rhs) //引用
{ //涓轰粈涔堣繖涔堜笉琛?

static Polynomial tmp;//Polynomial tmp = *this; //把这个变成局部静态
tmp = *this;//
tmp += rhs;//return tmp += rhs;
return tmp;//
}
//我想之前错误的原因是:
//这个tmp在这个函数调用结束之后会自动调用tmp的析构函数
//并且这个函数传回的是tmp的一个复制品,同样也会调用析构函数
//这个时候就会对同一片内存多次释放了

另外还有别的问题:
1.clear()函数中 循环外面的delete _head;不应该
2.在add函数中的那个while循环中当==的时候,应该delete it;

热心网友 时间:2023-11-04 20:16

你是编译错误,还是运行错误哈?

我编译了一下,没有编译错误哈。

如果是编译错误的话,我推测是的头文件包含有问题。
在 Item.cpp 文件的开头增加#include "Item.h "
在Polynomial.h文件开头增加#include "Item.h "
在Polynomial.cpp文件开头增加#include "Polynomial.h"

热心网友 时间:2023-11-04 20:17

我编译都通过了,没啥错误啊。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com