相关疑难解决方法(0)

前缀/后缀增量运算符

我想确保我理解按值传递和正确传递.特别是,我正在查看++对象的增量运算符的前缀/后缀版本.

我们假设我们有以下课程X:

class X{
private:
    int i;
public:
 X(){i=0;}
 X& operator ++ (){ ++i; return *this; } //prefix increment

 X operator ++ (int unused){ //postfix increment
  X ret(*this);
  i++;
  return ret;
 }

 operator int(){ return i; } //int cast
};
Run Code Online (Sandbox Code Playgroud)

首先,我是否正确实现了前缀/后缀增量运算符?

第二,与前缀运算符相比,后缀运算符的内存效率如何?具体来说,X当使用每个版本的运算符时,会创建多少个对象副本?

准确地解释通过引用返回和按值返回会发生什么可能有助于我理解.


编辑:例如,使用以下代码...

X a;
X b=a++;
Run Code Online (Sandbox Code Playgroud)

... a和b现在是别名吗?

c++ increment return-by-reference

21
推荐指数
2
解决办法
2万
查看次数

标签 统计

c++ ×1

increment ×1

return-by-reference ×1