1

我正在使用 C++ 语言的 NS2。我看到下面的代码我看不懂!!!!

ch->size() += IP_HDR_LEN;

感谢您的帮助...

4

1 回答 1

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++ 中将函数用作左操作数是什么意思

这里返回值用作左操作数,而不是函数。返回类型是对某事物的引用,代表左值,可以作为 LHS 使用。

编辑

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

于 2014-05-29T12:46:39.067 回答