是 c++ 中的赋值运算符返回右值或左值
Is assignment operator in c++ returns rvalue or lvalue?
c++ 中的赋值运算符是否返回右值或左值?如果它是左值,那么这两个参数中的哪一个将在这里增加?
(a = b)++
它返回一个左值。根据§ 5.17:
赋值运算符 (=( 和复合赋值运算符全部 从右到左分组。都需要一个可修改的左值作为他们的左边 操作数并返回一个引用左操作数的左值。
如果这些对象具有用于赋值的用户定义运算符,则它取决于operator=
的实现和声明(返回类型(。
所以通常,之后
(a = b)++
对象a
将递增。
相关文章:
- 使用赋值运算符重载从类中返回jobject
- 为什么我的类工作正常,即使在返回垃圾值作为赋值运算符和空复制构造函数的返回之后
- 赋值运算符的返回值可以作为参考吗?
- 为什么类的赋值运算符的返回类型通常是非常量(而不是常量)引用?
- 赋值运算符重载 c++ 的返回值
- 在对类对象的赋值进行链接时获取垃圾值,使用按值返回类对象的赋值运算符重载
- 尽管返回了引用,但无法链接重载的赋值运算符
- 为什么赋值运算符必须返回任何内容
- 重载运算符 = 返回 void 是否不可能成为复制赋值运算符
- 通过赋值运算符返回字符数组
- 是 c++ 中的赋值运算符返回右值或左值
- 返回赋值运算符的类型
- 为什么在赋值运算符重载中返回引用
- 返回 C++ 中重载赋值运算符的类型
- C++只移动对象-从赋值运算符返回什么
- 按值返回调用复制构造函数或复制赋值运算符
- C++赋值运算符默认返回
- C++返回一个具有常量成员变量的对象 -- 隐式删除赋值运算符
- 返回包装类中赋值运算符的类型
- 赋值运算符在不应该返回"empty"实例时返回?