• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆-59  評論-36  文章-0  trackbacks-0
            class T{ /**/ };

            T fun(){  
            return T();  }

            int main()
            {
                fun() 
            = T();
                
            return 0;
            }


            當我看到上面這樣的代碼時,我便認為這個代碼無法編譯通過的,因為按我所知道的,函數fun所返回的是一個臨時對象,而臨時對象是不能被修改的,然而fun()=T()語句便恰恰是在對臨時對象進行修改。但是當我編譯之后卻傻眼了,居然通過了,我很納悶。
            后來在網友的幫助下,在標準中找到了答案:

            3.10.5 
            The result of calling a function that does not return a reference is an rvalue. User defined operators are functions, and whether such operators expect or yield lvalues is determined by their parameter and return types.

            13.5.7
            The identities among certain predefined operators applied to basic types (for example, ++a ≡ a+=1) need not hold for operator functions. Some predefined operators, such as +=, require an operand to be an lvalue when applied to basic types; this is not required by operator functions.

            3.10
            An lvalue for an object is necessary in order to modify the object except that an rvalue of class type can also be used to modify its referent under certain circumstances. [Example: a member function called for an object (9.3) can modify the object. ]



            也就是說,在對內置類型進行賦值操作時,將調用內置的賦值操作符,而這種內置的要求左操作數必須是左值;而當對類類型對象進行賦值時,所調用的是重載的賦值操作符,但重載的操作符并沒有要求必須使用左值,也就是說,賦值操作符的左操作數可以是右值。
            后來得知,在C++中右值可以是一個對象,而“對象”就指的是“一段內存存貯區域”,但C中的右值則不是一個對象,他只是一個值。

            以上內容如有不對之處,還望不惜指正。

            對lvalue和rvalue的較詳細介紹請看文章<Lvalues and Rvalues>:http://www.shnenglu.com/zhaoyg/archive/2010/02/06/107405.html

            posted on 2010-02-10 21:35 zhaoyg 閱讀(459) 評論(0)  編輯 收藏 引用 所屬分類: C/C++學習筆記
            青青热久久国产久精品| 亚洲美日韩Av中文字幕无码久久久妻妇 | 日本强好片久久久久久AAA| 97精品国产97久久久久久免费| 无码任你躁久久久久久久| 99精品久久精品一区二区| 久久青草国产精品一区| 久久青青色综合| 久久亚洲国产中v天仙www| 亚洲伊人久久综合中文成人网 | 久久精品国产精品青草 | 久久亚洲中文字幕精品有坂深雪 | 久久久国产乱子伦精品作者| 久久久久久青草大香综合精品| 国内精品伊人久久久久777| 人人狠狠综合久久亚洲婷婷| 亚洲乱码精品久久久久..| 精品无码久久久久久久动漫| 狠狠色婷婷久久一区二区三区| 亚洲七七久久精品中文国产| 亚洲精品国产成人99久久| 久久久久人妻精品一区二区三区 | 成人久久精品一区二区三区| 亚洲欧美成人久久综合中文网| 青青青青久久精品国产 | 中文精品久久久久人妻不卡| 久久www免费人成看国产片| 国产精品久久一区二区三区| 久久精品国产亚洲AV嫖农村妇女 | 欧美亚洲国产精品久久蜜芽| 久久久久高潮毛片免费全部播放| 亚洲精品tv久久久久久久久久| 久久精品不卡| 久久性生大片免费观看性| 久久精品国产只有精品66 | 香港aa三级久久三级老师2021国产三级精品三级在 | 9191精品国产免费久久| 久久久久综合网久久| 久久国产乱子精品免费女| 69久久夜色精品国产69| 国产成人无码久久久精品一|