• <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://m.shnenglu.com/zhaoyg/archive/2010/02/06/107405.html

            posted on 2010-02-10 21:35 zhaoyg 閱讀(462) 評論(0)  編輯 收藏 引用 所屬分類: C/C++學習筆記
            狠狠色狠狠色综合久久| aaa级精品久久久国产片| 久久人妻少妇嫩草AV无码蜜桃| 久久久久久久久久久免费精品 | 99久久国产精品免费一区二区| 久久综合给合久久国产免费| 国产福利电影一区二区三区久久久久成人精品综合 | 精品国产青草久久久久福利| 国产91色综合久久免费| 欧美亚洲国产精品久久久久| 狠狠色丁香婷婷久久综合不卡| 久久91精品国产91| 国产精品无码久久四虎| 91精品国产色综合久久| 精品国产99久久久久久麻豆| 久久国产精品国语对白| 国产精品久久波多野结衣| 久久国语露脸国产精品电影| 久久国产免费| 精品国产91久久久久久久a| 久久综合久久自在自线精品自| 久久综合亚洲色一区二区三区| 久久久久久久久久免免费精品| AA级片免费看视频久久| 国产午夜精品理论片久久影视| 男女久久久国产一区二区三区| 99久久夜色精品国产网站| 久久久久一级精品亚洲国产成人综合AV区 | 国产精品久久久久国产A级| 久久久久亚洲AV无码专区首JN| 亚洲精品第一综合99久久| 久久有码中文字幕| 一本色道久久88综合日韩精品| 欧美激情精品久久久久久久| 性做久久久久久久久| 久久人妻少妇嫩草AV蜜桃| 久久久久人妻一区二区三区| 久久婷婷五月综合国产尤物app| 精品国产乱码久久久久久人妻| 77777亚洲午夜久久多喷| 少妇久久久久久被弄高潮|