-1

所以我正在尝试编写这个类。我想做的一件事是将两个加在一起,所以我重载了加法运算符。但事情是这样的,我不想返回指针,我想“按值”返回类,这样加法运算符就可以在不弄乱指针的情况下工作。

我目前的方法不起作用,因为我创建的类超出了范围,我能想到的唯一另一种方法是使用指针。有没有其他方法可以做到这一点,而无需调用 new 并分配稍后必须由班级用户删除的内存?

当前代码:

Polynomial operator+(const Polynomial &lhs, const Polynomial &rhs)
{

    Polynomial newPoly;
    newPoly.addWithOther(lhs);
    newPoly.addWithOther(rhs);
    return newPoly;
}
4

1 回答 1

-1

好吧,我想通了。在调用 return 之后立即调用复制构造函数。并且返回寄存器将获取您的对象的副本。在这里,任何未返回的对象都将超出范围。如果您不执行这些对象的深层副本,或者在我的情况下,是“足够深”的副本,则系统将重新分配成员。

于 2013-11-04T19:49:34.283 回答