[英]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.