• <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>
            posts - 3,  comments - 28,  trackbacks - 0

            ?

            class ?A
            {

            private :
            ????
            int ?i;
            public :
            ????A(
            int ?ii):i(ii) {} // cout<<i<<"??A()?"<<endl;
            ????A():i( 0 ) {}

            ????
            ~ A() {cout << " ~A( " << i << " )? " << endl;}

            ????
            const ?A? operator ? + ( const ?A? & r)? const
            ????
            {
            ????????
            return ?A(i + r.i);

            ????}

            }
            ;

            int ?main()
            {
            ????
            int ?i = 10 ,j = 20 ;
            ????
            // cout<<&(i+j)<<endl;?????????? // 這里為什么會(huì)出錯(cuò)呢?
            ????A?a1( 10 ),a2( 20 ),a3( 30 ),a4( 40 );
            ????cout
            <<& (a1 + a2) << endl;??????? // 這里就應(yīng)該是臨時(shí)變量的地址了吧
            ????system( " pause " );
            ????
            return ? 0 ;
            }



            既然這樣可以運(yùn)行,那為什么內(nèi)置的類型如:int float之類的不能取臨時(shí)對(duì)象的值呢?
            我重載的+號(hào)運(yùn)算符應(yīng)該沒有寫錯(cuò)吧、、
            請(qǐng)大家指教。。謝謝我還只是一個(gè)初學(xué)者

            posted on 2006-02-12 22:12 豬頭餅 閱讀(1022) 評(píng)論(10)  編輯 收藏 引用 所屬分類: C++

            FeedBack:
            # re: [討論]臨時(shí)對(duì)象有地址么?
            2006-02-13 00:05 | 音樂蟲子
            i+j得到的是一個(gè)值,不存在你說說的臨時(shí)對(duì)象
              回復(fù)  更多評(píng)論
              
            # re: [討論]臨時(shí)對(duì)象有地址么?
            2006-02-13 00:19 | 梅阿查沒有眼淚
            謝謝你的回復(fù)
            那么:
            int foo()
            {
            return 10+20; //這個(gè)應(yīng)該返回的是一個(gè)臨時(shí)對(duì)象了吧
            }
            //下面為什么這里還是會(huì)出錯(cuò)呢?
            cout<<&foo();
              回復(fù)  更多評(píng)論
              
            # re: [討論]臨時(shí)對(duì)象有地址么?
            2006-02-13 09:50 | 蟲子
            int是值類型,不是類類型  回復(fù)  更多評(píng)論
              
            # re: [討論]臨時(shí)對(duì)象有地址么?
            2006-02-13 11:07 | 小明
            int foo()
            {
            return 10+20; //這個(gè)應(yīng)該返回的是一個(gè)臨時(shí)對(duì)象了吧
            }


            如果你懂一些匯編,vc中,這個(gè)函數(shù)返回的時(shí)候,只是把結(jié)果30放到EAX
            mov eax ,30
            并不生成一個(gè)臨時(shí)對(duì)象
            調(diào)用者也只是從EAX中取得這個(gè)值  回復(fù)  更多評(píng)論
              
            # re: [討論]臨時(shí)對(duì)象有地址么?
            2006-02-13 13:46 | 梅阿查沒有眼淚
            在C++中真正的臨時(shí)對(duì)象是看不見的,它們不出現(xiàn)在你的源代碼中。建立一個(gè)沒有命名的非堆(non-heap)對(duì)象會(huì)產(chǎn)生臨時(shí)對(duì)象。這種未命名的對(duì)象通常在2種條件下產(chǎn)生:
            1:為了使函數(shù)成功調(diào)用而進(jìn)行隱式類型轉(zhuǎn)換
            由于對(duì)于臨時(shí)對(duì)象的概念還沒有搞清楚,在些貽笑大方了

            void foo(const int & i)
            {
            cout<<&i<<endl;
            }

            float f=3.14;
            foo(f);//這里應(yīng)該是正確的打印出這個(gè)臨時(shí)對(duì)象的地址了吧。

            2:函數(shù)返回對(duì)象時(shí)
            int foo()
            {
            return 10+20; //這個(gè)是不是編譯器對(duì)些做出的一些優(yōu)化而沒有產(chǎn)生臨時(shí)對(duì)象呢
            }

            謝謝各位指導(dǎo)  回復(fù)  更多評(píng)論
              
            # re: [討論]臨時(shí)對(duì)象有地址么?
            2006-02-13 18:01 | hdqqq1
            讓編譯器生成匯編就可以清楚了.  回復(fù)  更多評(píng)論
              
            # re: [討論]臨時(shí)對(duì)象有地址么?
            2006-02-22 02:27 | 挺c++
            1.返回局部對(duì)象(你的A(i+r.i))時(shí),編譯器調(diào)用A的拷貝構(gòu)造函數(shù),又復(fù)制了一個(gè)A,因而得到了你所謂的臨時(shí)對(duì)象.但是這樣效率比較低.
            2.你的那個(gè)函數(shù)foo()里面的常數(shù)加法10+20實(shí)際上是在編譯期執(zhí)行的.簡(jiǎn)單的返回值vc直接寫到eax里面了.就是樓上仁兄說的mov eax,30就搞定.
            3.你的原來那個(gè)式子里面,i+j這樣的簡(jiǎn)單運(yùn)算也是在寄存器中完成的. i+j會(huì)編譯為:
            mov eax, dword ptr [i]
            add eax, dword ptr [j]
            如果沒有進(jìn)一步的賦值語(yǔ)句,怎么獲取地址?
            實(shí)際上,如果一個(gè)語(yǔ)句就僅僅是:i+j;
            那么編譯器優(yōu)化后根本不為這條語(yǔ)句生成任何代碼.  回復(fù)  更多評(píng)論
              
            # re: [討論]臨時(shí)對(duì)象有地址么?
            2006-03-12 00:09 | amazement
            對(duì)于取地址符號(hào)&在匯編中的實(shí)現(xiàn)是這樣的:1,必須將該數(shù)壓入到為程序分配的堆棧之中,如 push %eax. 2 然后通過對(duì)幀指針%ebp的定位,如leal 8(%ebp),%ebx(lea 為load effective address,8(%ebp)意思是將%ebp+8),那么現(xiàn)在%ebx中存儲(chǔ)的就是該數(shù)值的地址了.
              回復(fù)  更多評(píng)論
              
            # re: [討論]臨時(shí)對(duì)象有地址么?
            2006-03-12 00:13 | amazement
            對(duì)于取地址符號(hào)&在匯編中的實(shí)現(xiàn)是這樣的:1,必須將該數(shù)壓入到為程序分配的堆棧之中,如 push %eax. 2 然后通過對(duì)幀指針%ebp的定位,如leal 8(%ebp),%ebx(lea 為load effective address,8(%ebp)意思是將%ebp+8),那么現(xiàn)在%ebx中存儲(chǔ)的就是該數(shù)值的地址了.按照程序的情況來看,對(duì)于那個(gè) int 的臨時(shí)變量沒有壓入堆棧.
              回復(fù)  更多評(píng)論
              
            # re: [討論]臨時(shí)對(duì)象有地址么?[未登錄]
            2007-05-31 13:48 | 塌塌方
            cout<<&(i+j)....錯(cuò)是因?yàn)閕+j只是一個(gè)值沒有分配內(nèi)存所以不存在地址
            下面也不對(duì)了  回復(fù)  更多評(píng)論
              

            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            <2025年8月>
            272829303112
            3456789
            10111213141516
            17181920212223
            24252627282930
            31123456

            常用鏈接

            留言簿(1)

            隨筆分類

            隨筆檔案

            搜索

            •  

            積分與排名

            • 積分 - 7451
            • 排名 - 1351

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            伊人久久大香线蕉影院95| 区久久AAA片69亚洲 | 国产成人精品久久一区二区三区av| 久久久久久a亚洲欧洲aⅴ| 人妻少妇精品久久| 精品综合久久久久久97超人 | 老色鬼久久亚洲AV综合| 精品久久人人妻人人做精品| 国产色综合久久无码有码| 国产精品免费久久久久久久久| 人妻久久久一区二区三区| 久久这里都是精品| 久久99久久成人免费播放| 久久久久亚洲精品天堂| 欧美亚洲国产精品久久高清| 国产一区二区精品久久岳| 久久天天躁狠狠躁夜夜96流白浆| 久久久久无码中| 久久久久综合网久久| 国内精品伊人久久久久AV影院| 久久精品中文无码资源站| 精品久久久久久无码免费| 亚洲国产精久久久久久久| 国产精品国色综合久久| 久久无码人妻一区二区三区| 一级女性全黄久久生活片免费 | 97久久精品午夜一区二区| 国产亚洲美女精品久久久2020| 久久亚洲精品国产精品婷婷| 亚洲国产综合久久天堂 | 伊人久久大香线蕉综合Av| 国产亚洲精久久久久久无码77777 国产亚洲精品久久久久秋霞 | 人妻无码αv中文字幕久久琪琪布 人妻无码精品久久亚瑟影视 | 亚洲国产一成久久精品国产成人综合| 久久精品国产精品亚洲下载| 久久久久人妻一区精品果冻| 精品久久人人妻人人做精品 | 青青草原精品99久久精品66| 99久久精品免费看国产一区二区三区| 久久精品国产日本波多野结衣| 久久久久久曰本AV免费免费|