当一个函数在C ++中用作左操作数时是什么意思

时间:2014-05-29 12:44:44

标签: c++ ns2 operand

我正在使用C ++语言的NS2。 我看到以下代码,我无法理解!!!!

ch->size() += IP_HDR_LEN;

感谢您的帮助......

1 个答案:

答案 0 :(得分:7)

方法ch->size()引用(左值)返回到表达式中使用的内容。

例如:

class A{
 int x;
 public:
  int& getX(){ return x;}
};

然后它可以用作

A* a= new A;
a->getX() +=5; // which is equivalent to x+=5 or x=x+5, since getX returns reference to 'x', it can be used as LHS of an expression

所以对于你的问题:

  

在C ++中将函数用作左操作数时意味着什么

此处返回值用作左操作数,而不是功能。返回类型是引用某事,它代表 lvalue ,可以用作LHS。

修改

正如@dlf所指出的,size()可以返回任何重载operator +=的类的对象(通过引用或值)。如果通过引用返回,则它与上面的示例相同(只有int x变为MyClass xint& getX()变为MyClass& getX())。如果按值返回,虽然可以,但没有用或导致错误的设计(如果MyClass s operator +=改变某些全局状态)。