[英]Follow-up. Is return reference to x++ defined?
我最近问的问题是返回x ++的行为; 界定?
结果是关于我的预期,但让我想到了类似的情况。
如果我要写
class Foo
{
...
int x;
int& bar() { return x++; }
};
bar现在返回int引用,是否定义了此行为? 如果上一个问题的答案确实是真的,而不仅仅是对正在发生的事情的方便抽象,那么看起来你会返回一个堆栈变量的引用,一旦执行返回就会被销毁。
如果它只是一个抽象,我有兴趣知道后增量实际上保证了什么行为。
不,你不能这样做,因为那将返回对临时的引用。
您的代码将导致compilation error
。 但是,如果将后增量更改为预增量,则可以正常工作。 x
的值递增,然后返回对此修改的x
的引用。
当前代码的问题在于您正在尝试修改临时代码,因为它们是临时对象,所以不允许这样做。
... C ++不希望你不小心修改临时...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.