• <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 閱讀(462) 評論(0)  編輯 收藏 引用 所屬分類: C/C++學習筆記
            狠狠色丁香久久婷婷综合蜜芽五月| 精品乱码久久久久久久| 一本久久a久久精品综合夜夜| 久久91综合国产91久久精品| 国产精品成人久久久久久久| 久久国产成人午夜aⅴ影院 | 久久久久久久久无码精品亚洲日韩 | 18禁黄久久久AAA片| 久久亚洲精品中文字幕| 久久93精品国产91久久综合| 日产久久强奸免费的看| 国产精品国色综合久久| 久久精品国产亚洲av瑜伽| 亚洲伊人久久精品影院| 91精品观看91久久久久久| 亚洲va久久久噜噜噜久久| 国产999精品久久久久久| 亚洲AV日韩精品久久久久久久| 青青青青久久精品国产h| 亚洲国产成人久久综合野外| 久久久久久狠狠丁香| 一本一本久久aa综合精品| 亚洲国产成人精品女人久久久 | 久久久久久久人妻无码中文字幕爆 | 一本色道久久88—综合亚洲精品| 成人免费网站久久久| 久久久久久曰本AV免费免费| 国产精品VIDEOSSEX久久发布| 久久棈精品久久久久久噜噜| 久久人人爽人人爽人人av东京热| 26uuu久久五月天| 国产精品99久久久久久董美香 | 欧美熟妇另类久久久久久不卡| 欧美久久综合九色综合| 91精品国产高清久久久久久国产嫩草 | 欧美综合天天夜夜久久| 久久99精品国产自在现线小黄鸭| 亚洲AV无码久久| 久久国产精品一国产精品金尊| 亚洲精品乱码久久久久久自慰| 久久精品极品盛宴观看|