【发布时间】:2011-01-21 21:42:54
【问题描述】:
好的,所以我搜索了这个问题并搜索了堆栈溢出,但我似乎找不到一个好的答案。所以,我在这里问的是我的问题特有的问题。如果这是一个简单的答案,请很好,我是这门语言的新手。这是我的问题:
我正在尝试为重载运算符的 C++ 类编写方法。我想返回修改后的实例的副本,而不是实例本身。为了便于举例,我将使用BigInt 类来演示我遇到的问题。
如果我有以下代码:
const BigInt & operator+() const //returns a positive of the number
{
BigInt returnValue = *this; //this is where I THINK the problem is
returnValue.makepositve(); //for examples sake
return returnValue;
}
我收到返回值可能已在堆栈上创建的错误。我知道这意味着我必须在堆上创建对象并返回引用。但是如果我将 3rd 行更改为:
BigInt & returnValue = *this;
我收到一条错误消息,告诉我语法不正确。我不太确定该怎么做,非常感谢任何帮助!
【问题讨论】:
标签: c++ reference return-value