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

詳述C++庫的使用與維護工作

開發 后端
學習C++庫兩個主要原因:一,了解底層知識有助于寫出高效的代碼。二,C++這樣的接近硬件的語言為了降低語言抽象的效率懲罰。

C++擁有很多現代的、令人激動的語言特性,例如模板、泛型編程等。在這一點上,C#和Java也在迅速跟進,學好C++基本上也意味著可以學好任一種其他的高級程序設計語言,好吧,那么本章先從C++庫的問題進行說明介紹。

在語言設計上作了很多折衷,比如內建的有限精度整型和浮點型,比如指針。這就意味著,用這類語言編程容易掉進Joel所謂的“抽象漏洞”,需要你在語言提供的抽象層面之下去思考并解決遇到的問題,此時的底層知識便能幫上大忙。

因此,一本從程序員(而不是電子工程師)的角度去介紹底層知識的書會非常有幫助——這就是推薦《Computer Systems:A Programmers Perspective》(以下簡稱CSAPP)(中譯本《深入理解計算機系統》)的原因。 #t#

另一方面,C++不同于C的一個關鍵地方就在于,C++在完全保留有C的高效的基礎上,增添了抽象機制。而所謂的“現代C++風格”便是倡導正確利用C++的抽象機制和這些機制構建出來的現代C++庫(以STL為代表)的,Bjarne也很早就倡導將C++當作一門不同于C的新語言來學習。

(就拿內存管理來說,使用現代C++的內存管理技術,幾乎可以完全避免new和delete),因此,一本從這個思路來介紹C++的入門書籍是非常必要的——這就是推薦《Accelerated C++》的原因(以下簡稱AC++)。《Accelerated C++》的作者Andrew Koenig是C++標準化過程中的核心人物之一。

C++是在C語言大行其道的歷史背景下發展起來的,在一開始以及后來的相當長一段時間內,C++是C的超集,所有C的特性在C++里面都有,因此導致了大量后來的C++入門書籍都從C講起。

實際上,這是一個誤導,因為C++雖然是C的超集,然而用抽象機制擴展C語言的重大意義就在于用抽象去覆蓋C當中裸露的種種語言特性,讓程序員能夠在一個更自然的抽象層面上編程。

比如你不是用int*加一個數組大小n來表示一個數組,而是用可自動增長的vector;比如你不是用malloc/free,而是用智能指針和RAII技術來管理資源;

比如你不是用一個只包含數據的結構體加上一組函數來做一個暴露的類,而是使用真正的ADT。比如你不是使用second-class的返回值來表達錯誤,而是利用first-class的語言級異常機制等等。然而,C畢竟是C++的源頭。

剝開C++庫的抽象外衣,底層仍然還是C;而且,更關鍵的是,在實際編碼當中,有時候還的確要“C”一把,比如在模塊級的二進制接口封裝上。Bjarne也說過,OO/GP這些抽象機制只有用在合適的地方才是合適的。

當人們手頭有的是錘子的時候,很容易把所有的目標都當成釘子,有時候C的確能夠提供簡潔高效的解決方案,比如C標準庫里面的printf和fopen(此例受云風的啟發)的使用界面就是典型的例子。

簡而言之,理解C語言的精神不僅有助于更好地理解C++,更理性地使用C++,而且也有其實踐意義——這就是推薦《The C Programming Language》(以下簡稱TCPL)的原因。此外,建議在閱讀《Accelerated C++庫》之前先閱讀《The C Programming Language》。

因為,一,《The C Programming Language》非常薄。二,如果你帶著比較的眼光去看問題,看完《The C Programming Language》再看《Accelerated C++》,你便會更深刻的理解C++語言引入抽象機制的意義和實際作用。

責任編輯:chenqingxiang 來源: 天極
相關推薦

2010-01-12 14:16:31

Visual C++語

2010-01-11 13:19:24

C++代碼

2009-11-27 17:06:24

2010-01-07 18:32:38

JSON

2010-01-26 15:51:06

C++變量

2010-01-11 16:59:50

C++源代碼

2010-01-14 15:46:27

C++標準庫

2012-09-05 09:04:36

C++SQLite

2010-01-15 19:49:04

C++類庫

2010-01-15 19:49:04

C++類庫

2009-01-11 10:23:00

2015-05-13 09:57:14

C++靜態庫與動態庫

2010-01-08 16:00:46

C++編譯器

2010-01-25 15:55:50

托管C++

2022-02-09 15:24:06

SwiftC++開發者

2024-01-24 12:30:18

C++開發

2010-01-27 15:58:35

C++數據結構

2011-03-15 13:25:41

Oracle數據庫管理員維護

2011-05-05 13:47:46

微型投影機

2011-07-01 14:55:28

Qt QML C++
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲成人福利 | 国产精品欧美日韩 | 国精产品一区二区三区 | 久久久久久久亚洲精品 | 日韩欧美亚洲 | 亚洲欧美视频 | 天天躁日日躁aaaa视频 | 久久久久国产精品午夜一区 | 自拍视频网 | 日本超碰 | av第一页 | 伊人网综合在线观看 | 亚洲福利 | www.888www看片| 97av视频| 黑人巨大精品 | 国产综合久久 | 国产不卡视频在线 | 国产在线观看不卡一区二区三区 | 激情欧美日韩一区二区 | 97精品超碰一区二区三区 | 亚洲精品一区中文字幕乱码 | 午夜婷婷激情 | www亚洲一区 | 中文字幕一区二区三区四区五区 | 国产成人综合一区二区三区 | 天天操天天插 | 欧美在线观看免费观看视频 | 国产黄色大片 | 日韩视频一区二区 | 国产三区视频在线观看 | 69精品久久久久久 | 精品日韩一区 | 亚洲二区在线观看 | 日韩欧美国产综合 | 亚洲一区 中文字幕 | 懂色一区二区三区免费观看 | 日韩在线视频一区 | 欧美又大粗又爽又黄大片视频 | 国产成人精品一区二区三区视频 | 久久精品av麻豆的观看方式 |