我正在使用C ++语言的NS2。 我看到以下代码,我无法理解!!!!
ch->size() += IP_HDR_LEN;
感谢您的帮助......
答案 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 x
,int& getX()
变为MyClass& getX()
)。如果按值返回,虽然可以,但没有用或导致错误的设计(如果MyClass
s operator +=
改变某些全局状态)。