我正在使用 C++ 语言的 NS2。我看到下面的代码我看不懂!!!!
ch->size() += IP_HDR_LEN;
感谢您的帮助...
该方法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 x
,int& getX()
变成MyClass& getX()
)。如果按值返回,虽然可以,但没有用或导致糟糕的设计(如果MyClass
soperator +=
改变了一些全局状态)。