c++ - 重载必须返回对象引用的运算符

标签 c++ reference overloading

class LongInt
{
public: LongInt& operator++(); //returning a reference
}

LongInt LongInt::operator++()
{
    ...

    LongInt d;


    d.setVector(temp);






    return d; //returning a reference to an object that will be wiped out because it is out of scope

}

我在这里有点困惑。我显然必须通过引用返回来重载增量运算符,但我认为这甚至是不可能的。我遇到内存错误,因为我的指针指向的对象消失了。那么我应该如何重载++ 运算符呢?

最佳答案

修改对象本身,然后返回*this

关于c++ - 重载必须返回对象引用的运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22185724/

相关文章:

reference - 访问返回参数的组件时出现ThisIsNotAObjectReference错误

c# - 比较器中的方法解析

c++ - 写入 bool 条件 "in full"是否会影响性能?

java - 将空括号分配给 String 引用变量

c++ - 绕轴 3D 旋转的说明。 (简单编码)

c# - 获取 "type or namespace name could not be found"但一切似乎都正常?

c++ - 如何在编译时选择正确的重载函数模板?

javascript - 在单个数组对象上覆盖 toString() Javascript

c++ - 使用 C++ (Linux) 更改 BlueFox3 相机的流帧速率?

c++ - 为什么在这个例子中有 "for(auto& x : v)"而不是 "for(auto x : &v)"?