所以我正在尝试写这个课程。我希望能够做的一件事是将两个加在一起,所以我正在重载加法运算符。但是这里的东西,我不想返回一个指针,我想“按值”返回类,这样加法运算符可以在不搞乱指针的情况下工作。
我当前的方法不起作用,因为我创建的类超出了范围,我能想到的另一种方法是用指针来做。有没有其他方法可以做到这一点,没有调用新的和分配内存,以后将不得不被类的用户删除?
当前代码:
Polynomial operator+(const Polynomial &lhs, const Polynomial &rhs)
{
Polynomial newPoly;
newPoly.addWithOther(lhs);
newPoly.addWithOther(rhs);
return newPoly;
}
答案 0 :(得分:-1)
好吧我明白了。调用return后立即调用复制构造函数。返回寄存器将获取您的对象的副本。在这里,任何未返回的对象都将超出范围。如果您没有执行这些对象的深层复制,或者在我的情况下,执行“足够深”的复制,则系统将重新分配成员。