我正在使用C++语言的NS2.我看到以下代码,我无法理解!!!!
ch->size() += IP_HDR_LEN;
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助...
该方法ch->size()将引用(左值)返回到表达式中使用的内容.
例如:
class A{
int x;
public:
int& getX(){ return x;}
};
Run Code Online (Sandbox Code Playgroud)
然后它可以用作
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
Run Code Online (Sandbox Code Playgroud)
所以对于你的问题:
当一个函数在C++中用作左操作数时是什么意思
这里返回值用作左操作数,而不是函数.返回类型是对某事物的引用,它代表左值,可以用作LHS.
编辑
正如@dlf所指出的,size()可以返回任何重载类的对象(通过引用或值)operator +=.如果通过引用返回,那么它与上面的例子相同(只是int x变成MyClass x,int& getX()变成MyClass& getX()).如果按值返回,虽然可以,但没有用或导致不良设计(如果MyClasss operator +=改变某些全局状态).
| 归档时间: |
|
| 查看次数: |
436 次 |
| 最近记录: |