成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C++入門(mén)之談前置++與后置++的區(qū)別

開(kāi)發(fā) 后端
本文介紹的是C++中前置++與后置++的區(qū)別,適合初學(xué)者閱讀。希望對(duì)你有幫助,一起來(lái)看。

剛剛接觸C++的新手同學(xué)們,往往會(huì)被前置++和后置++搞混。這個(gè)概念在C++中還是很重要的,把前置++和后置++弄明白是必須的。下面就給大家介紹前置++和后置++的區(qū)別。

前置++:

  1. type operator++(); 

 

后置++:

  1. const type operator++(int ); 

 

為了編譯器區(qū)分前置和后置++,C++規(guī)定后綴形式有一個(gè)int類(lèi)型參數(shù) ,當(dāng)函數(shù)被調(diào)用時(shí),編譯器傳遞一個(gè)0做為int參數(shù)的值給該函數(shù)。不這樣規(guī)定,無(wú)法區(qū)分,因?yàn)槎純H以自身對(duì)象為入?yún)ⅰ?/p>

下面是一個(gè)簡(jiǎn)單的例子:

  1. class CInt {  
  2. private :  
  3. int m_value;  
  4. //  
  5. } ;  
  6. CInt & CInt:: operator ++ ( ) // 前置的是沒(méi)有參數(shù)的,并且返回引用  
  7. {  
  8. this -> m_value += 1 ;  
  9. return * this ;  
  10. }  
  11. const CInt CInt::peartor ++ (Int) // 后置的有一個(gè)匿名參數(shù),并且返回const值  
  12. {  
  13. CInt old = * this ;  
  14. ++ ( * this );  
  15. return old;  

 

 

上面的實(shí)現(xiàn)解釋了一個(gè)關(guān)鍵問(wèn)題:前置比后置效率高 ,后置需要構(gòu)造臨時(shí)對(duì)象并返回。

那為什么前置和后置返回參數(shù)不同呢?

前置僅僅是對(duì)自身進(jìn)行運(yùn)算,并將自身返回,這樣外面可以直接對(duì)這個(gè)返回對(duì)象再進(jìn)行操作 ,如

  1. (++it)->function() 

 

后置因其返回的不是原來(lái)的對(duì)象,此時(shí)再進(jìn)行額外操作,改變的是臨時(shí)對(duì)象的狀態(tài),并不異義 ,容易誤解。

那為什么不返回const &呢?因?yàn)椴荒苓@么做,返回引用將無(wú)效,臨時(shí)對(duì)象已經(jīng)不存在了。

所以后置返回const 對(duì)象即限制對(duì)此臨時(shí)對(duì)象進(jìn)行誤操作,并顯式地告訴調(diào)用者此對(duì)象僅為原對(duì)象的副本。

另外還有一個(gè)原因:內(nèi)置int類(lèi)型并不支持 i++++ .而如果后置++返回一個(gè)可修改的副本將與內(nèi)置int類(lèi)型行為不同。故應(yīng)該禁止使用者對(duì)返回值進(jìn)行修改。

希望通過(guò)以上內(nèi)容的介紹,能夠幫助到你。

責(zé)任編輯:于鐵 來(lái)源: 互聯(lián)網(wǎng)
相關(guān)推薦

2010-01-26 17:53:05

C++入門(mén)學(xué)習(xí)

2010-01-15 14:52:33

Visual C++

2010-01-25 11:21:01

C++語(yǔ)法

2010-01-18 10:53:26

2010-01-21 18:00:59

C++語(yǔ)言

2010-01-27 16:52:31

C++語(yǔ)言學(xué)習(xí)

2010-01-27 15:54:49

C++實(shí)現(xiàn)程序

2009-08-13 17:30:30

C#構(gòu)造函數(shù)

2010-01-15 10:48:29

C++程序代碼

2011-08-04 13:38:01

Objective-C C++

2009-10-10 14:40:03

C++中struct

2010-01-15 16:37:28

Visual C++

2011-04-11 09:43:25

C++C

2010-01-15 15:52:18

CC++

2024-04-03 09:43:06

C++編程代碼

2011-06-14 12:27:38

C#C++

2011-07-20 18:03:54

CC++

2010-01-13 17:04:36

C++語(yǔ)言

2010-01-26 10:27:43

C++語(yǔ)言

2022-07-01 11:56:54

C語(yǔ)言C++編程語(yǔ)言
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 欧美视频 亚洲视频 | 国产精品久久久久久久久免费樱桃 | 秋霞av国产精品一区 | 国产日韩欧美一区二区 | 能看的av网站 | 国产一级片一区二区三区 | 成年女人免费v片 | 亚洲一区二区三区欧美 | 日韩精品一| 亚洲精品久久久一区二区三区 | 国产精品一区二区在线观看 | av在线播放一区二区 | 久久av一区二区三区 | 国产一区二区精品在线 | 国产成人综合亚洲欧美94在线 | 亚洲高清在线播放 | 在线不卡视频 | 精品欧美一区免费观看α√ | 欧美一区二区三区久久精品视 | 久久成人免费观看 | 久久久久久久久蜜桃 | 日韩中文在线视频 | 中文字幕精品一区二区三区精品 | 国产亚洲精品精品国产亚洲综合 | 干狠狠 | 成人免费网站 | 成人免费视频网站在线看 | 日韩欧美国产精品一区二区 | 日韩影院在线 | 欧美区在线 | 日本中文字幕日韩精品免费 | 天天天天操 | 草草草网站 | 天堂网色| 国产免费让你躁在线视频 | 美女国内精品自产拍在线播放 | 99久久精品国产一区二区三区 | 欧美a级成人淫片免费看 | 一区二区三区视频在线 | 午夜亚洲 | 成人精品一区二区 |