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

C++入門之談前置++與后置++的區別

開發 后端
本文介紹的是C++中前置++與后置++的區別,適合初學者閱讀。希望對你有幫助,一起來看。

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

前置++:

  1. type operator++(); 

 

后置++:

  1. const type operator++(int ); 

 

為了編譯器區分前置和后置++,C++規定后綴形式有一個int類型參數 ,當函數被調用時,編譯器傳遞一個0做為int參數的值給該函數。不這樣規定,無法區分,因為都僅以自身對象為入參。

下面是一個簡單的例子:

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

 

 

上面的實現解釋了一個關鍵問題:前置比后置效率高 ,后置需要構造臨時對象并返回。

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

前置僅僅是對自身進行運算,并將自身返回,這樣外面可以直接對這個返回對象再進行操作 ,如

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

 

后置因其返回的不是原來的對象,此時再進行額外操作,改變的是臨時對象的狀態,并不異義 ,容易誤解。

那為什么不返回const &呢?因為不能這么做,返回引用將無效,臨時對象已經不存在了。

所以后置返回const 對象即限制對此臨時對象進行誤操作,并顯式地告訴調用者此對象僅為原對象的副本。

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

希望通過以上內容的介紹,能夠幫助到你。

責任編輯:于鐵 來源: 互聯網
相關推薦

2010-01-26 17:53:05

C++入門學習

2010-01-15 14:52:33

Visual C++

2010-01-25 11:21:01

C++語法

2010-01-18 10:53:26

2010-01-21 18:00:59

C++語言

2010-01-27 16:52:31

C++語言學習

2010-01-27 15:54:49

C++實現程序

2009-08-13 17:30:30

C#構造函數

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++語言

2010-01-26 10:27:43

C++語言

2022-07-01 11:56:54

C語言C++編程語言
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品国产一区二区三区四区在线 | 亚洲1区| 99久久免费精品国产男女高不卡 | 午夜噜噜噜 | 国产麻豆乱码精品一区二区三区 | 午夜影院在线观看 | 久久成人高清视频 | 成人一区二区三区 | 日本精品一区 | 欧美精品在线一区二区三区 | 久久中文字幕一区 | 一区二区在线视频 | 欧美色999 | 国产精品久久久久久久久久 | 天天爽天天干 | 逼逼网| 精品国产乱码久久久久久丨区2区 | 成人片网址| 午夜久久 | 国产91精品久久久久久久网曝门 | 成人啊啊啊 | 国产精品不卡一区 | 色av一区二区三区 | 在线日韩视频 | 日韩精品视频一区二区三区 | 中文字幕在线一区 | 国产成人精品999在线观看 | 午夜精品一区二区三区在线观看 | 亚洲一区中文字幕 | 亚洲免费一区二区 | 干狠狠 | 亚洲高清在线观看 | 亚洲福利在线观看 | 国产一级毛片视频 | aaaaaaa片毛片免费观看 | 欧美精品一区三区 | 亚洲97| 亚洲精品久久久久久久久久久 | 国产免费自拍 | 日韩高清国产一区在线 | 91黄在线观看 |