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

瓦解C++標準庫幾大難點

開發 后端
下文對C++標準庫進行了明確的學習與研究,先從C++標準庫的定義開始,其次講解影響C++標準庫的兩個決定性因素。。

在C++標準庫中,有關缺省變量值的限制非常模糊。基于此,很多編譯器允許開發人員將缺省變量值包含在函數聲明,指向函數的指針和引用,成員函數的指針,以及typedef聲明中。

例外一種需要更好的內存控制的情況是:需要在有限資源的情況下長時間不間斷運行的程序。實時系統經常需要用最少的耗費來獲取有保證的可預期的內存。這也就導致了更好的內存控制的需要。#t#

一般來說,這些程序都避免使用動態的內存分配,而使用特殊目的的內存分配器來管理有限資源。此外,還有一些情況下由于硬件或系統的要求,需要將對象放在指定的內存位置。這也需要進行定制的內存管理(通過重載new來加以實現)。

當分配內建(built-in)類型的對象、未包含用戶自定義的new操作符函數的類對象、任何類型的數組時,使用全局new操作符函數。當在類中自定義C++標準庫,分配該類對象的內存時,調用該類的new操作符。如下:

  1. #include  
  2. #include  
  3. class Blanks  
  4. {  
  5. public:  
  6. Blanks(){}  
  7. void *operator new( size_t stAllocateBlock, char chInit );  
  8. };  
  9. void *Blanks::operator new( size_t stAllocateBlock, char chInit )  
  10. {  
  11. void *pvTemp = malloc( stAllocateBlock );  
  12. if( pvTemp != 0 )  
  13. memset( pvTemp, chInit, stAllocateBlock );  
  14. return pvTemp;  
  15. }  
  16. int main()  
  17. {  
  18. Blanks *a5 = new( 0xa5 ) Blanks;//創建對象Blanks,并且初試化為0xa5  
  19. return a5 != 0;  

new操作符可以重載,而delete卻不行。因為等到需要釋放的時候,我們所能得到的就是一個指針。而且該指針可能不是原先的對象類型指針(有可能進行了類型轉換)。實際上,當使用new獲得一個指向一片內存的指針時,在該片內存前有一個指示器(indicator),記錄實際分配的內存數量。當調用delete時,可以獲知需要釋放的內存大小。數組的釋放(Deallocating Arrays): 

  1.  void f( )  
  2. {  
  3. X* p1 = new X[10];  
  4. //...  
  5. delete [] X;  

為什么不使用delete [10] X;來釋放內存?Bjarne Stroustrup稱這種做法容易導致錯誤,而將記錄元素個數的任務放在delete的實現中了。至于為什么C++中未內建垃圾收集器(Garbage Collection)的原因,看《C++語言的設計和演化》(En) Bjarne Stroustrup 機械工業出版社(俗稱:D&E)可以得到答案。

此外,C++標準庫中提供了一種智能型指針auto_ptr,這種指針可以幫助我們防止“被異常拋出時發生資源泄漏”。但是缺點是該智能型指針不能指向數組,因為其內部釋放內存是通過delete而非delete [] 來進行的。

所以,只能使用其來指向一個單個對象。模板部分是C++中比較難的部分,也是C++的魅力所在。以下文字是我以前看過的,具體出處不清楚了。今天稍微整理了一下,作為模板介紹的一個單元。

【編輯推薦】

  1. 如何正確編寫C++項目開發編寫項目計劃書
  2. 對C++庫函數進行學習探索總結筆記
  3. 深度演示C++語言的種種高安全性
  4. 詳細介紹如何準確無誤的編寫C++語言
  5. 深度演示C++語言的種種高安全性
責任編輯:chenqingxiang 來源: 品牌家電網
相關推薦

2021-08-16 12:35:25

C語言內存編程

2010-01-27 15:36:54

C++異常處理

2010-01-14 15:46:27

C++標準庫

2010-01-26 13:55:07

C++標準模板庫

2010-01-26 17:27:58

C++C程序

2011-05-13 18:10:55

CC++

2010-01-14 09:43:26

C++標準程序庫

2010-01-19 09:39:43

C++標準程序庫

2010-02-03 16:04:34

C++標準類庫

2010-01-19 09:39:43

C++標準程序庫

2019-09-18 09:05:26

微軟開源Windows

2010-01-25 18:05:40

C++語言

2022-09-22 10:22:36

C++編程語言代碼

2010-01-15 14:59:54

C++標準程序庫

2010-01-19 18:04:02

C++標準程序庫

2010-01-13 10:09:24

C++標準庫

2010-01-22 13:31:58

C++標準庫

2013-08-07 14:25:23

商戶APP

2010-01-11 10:01:25

C++的編程工具

2022-08-30 07:37:50

分布式數據庫互聯網
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品久久久久久妇女 | 黄色一级大片在线观看 | 日本一区二区视频 | 美女福利视频 | 亚洲日本一区二区三区四区 | 国产亚洲精品综合一区 | 人人天天操 | 日本aaaa| 一区二区三区韩国 | h视频在线播放 | 国产电影一区二区在线观看 | 国产玖玖| 97色综合 | 久久精品视频一区二区三区 | 国产日韩一区二区三免费高清 | 国产成人免费视频网站视频社区 | 亚洲精品国产电影 | 日韩精品久久久 | 色综合色综合网色综合 | 天天色天天色 | 成人av免费 | 九九热re| 欧美a v在线 | 日本国产精品视频 | 成人高清视频在线观看 | 欧美激情精品久久久久久免费 | 一级免费毛片 | 亚洲色图综合网 | 久久国产精品-国产精品 | 青青草免费在线视频 | 国产精品178页 | 天天av综合| 精品不卡 | 天天操人人干 | 一区在线观看视频 | 国产毛片久久久久久久久春天 | 精品中文字幕在线观看 | 精品九九九 | 99精品欧美一区二区蜜桃免费 | 久久大香 | 欧美大片黄 |