c++ - 重载 + 运算符以添加 2 个多项式

标签 c++

我正在尝试将存储在二维数组中的两个多项式相加,第一行存储系数,第二行存储度数。

我创建了一个重载 + 函数,但在这里我使用了 2D 分配的内存数组,并且在调用该函数时它崩溃了。

**更新:它现在运行但结果是一些大的负数

仅供引用,我有一个复制构造函数和一个重载 = 运算符

// overload +
Polynomial Polynomial::operator+(const Polynomial &right)
{

    maxExp = right.maxExp;
    poly = new int *[maxExp];
    for (int i=0; i < maxExp; i++)
        *(poly + i) = new int[2]; 

    Polynomial temp = *this;

    for (int i=0; i < maxExp; i++)
    {
        for (int j=0; j < 2; j++)
        {
            temp.poly[i][j] = poly[i][j] + right.poly[i][j];
        }
    }
    return temp;
}

最佳答案

只需从 += 和复制运算符开始,并使 + 运算符形成它。

关于c++ - 重载 + 运算符以添加 2 个多项式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15173617/

相关文章:

c++ - SQLite blob 数据类型

c++ - 如何将多个 .cpp 文件添加到一个 CMakeLists.txt 中

c++ - vector 元素如何在 vector std::move 之后保留其原始地址?

c++ - 如何在 Visual Studio 中为现有文件设置默认编码?

c++ - 为什么执行 socket::readyRead() 的新信号,即使其较早的插槽仍在处理中?

c++ - 获取 Windows 启动程序信息

C++11:模板编程

c++ - 外壳扩展窗口 : best communication between ContextMenu and IconOverlay?

c++ - 如何提前终止另一个文件中定义的函数?

c++ - union 是标准布局类型本身吗?