亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? c++的設計和演化.txt

?? 可用的C++源代碼 想找些電子書籍 N個小時都沒有找到 好不容易好象是找到但還坨麻煩
?? TXT
字號:
C++的設計和演化(The Design and Evolution of C++)
  C++程序設計語言是由來自AT&T Bell Laboratories的Bjarne Stroustrup(即本文作者)設計和實現的,它兼具Simula語言在組織與設計方面的特性以及適用于系統程序設計的C語言設施。C++最初的版本被稱作“帶類的C(C with classes)”[Stroustrup,1980],在1980年被第一次投入使用;當時它只支持系統程序設計(§3)和數據抽象技術(§4.1)。支持面向對象程序設計的語言設施在1983年被加入C++;之后,面向對象設計方法和面向對象程序設計技術就逐漸進入了C++領域。在1985年,C++第一次投入商業市場[Stroustrup,1986][ Stroustrup,1986b]。在1987至1989年間,支持范型程序設計的語言設施也被加進了C++[Ellis,1990][Stroustrup,1991]。

  隨著若干獨立開發的C++實現產品的出現和廣泛應用,正式的C++標準化工作在1990年啟動。標準化工作由ANSI(American National Standard Institute)以及后來加入的ISO(International Standards Organization)負責。1998年正式發布了C++語言的國際標準[C++,1998]。在標準化工作進展期間,標準委員會充當了一個重要的角色,其發布的C++標準之草案在正式標準發布之前,一直被作為過渡標準而存在。而作為標準委員會中的積極分子,我是C++進一步發展工作中的主要參與者。與以前的C++語言版本相比,標準C++更接近我理想中的那個C++語言了。關于C++的設計和演化,在[Stroustrup,1994]、[Stroustrup,1996]和[Stroustrup,1997b]中有詳細的敘述。至于標準化工作末期產生的C++語言定義,在[Stroustrup,1997]有詳細敘述。

 

2.1  C++的設計目標(C++ Design Aims)

  C++的設計目標,就是要讓C++既具有適合于系統程序設計的C語言所具有的可適應性和高效性,又能在其程序組織結構方面具有像Simula那樣的語言設施(Simula所支持的這種程序組織結構通常被稱為面向對象程序設計風格)。在設計的時候,還做了很大的努力,使得引借自Simula的高層次的程序設計技術能夠應用于系統程序設計之中。這即是說,C++所提供的抽象機制能夠被應用于那些對效率和可適應性具有極高要求的程序設計任務之中。

上述的C++之設計目標可以小結如下:

[設計目標]

l         l 對于要解決實際問題的程序員而言,C++使程序設計變得更有樂趣;

l         l C++是一門通用目的的程序設計語言,它:

  ——是一個更好的C;

  ——支持數據抽象;

  ——支持面向對象程序設計;

  ——支持范型程序設計。

對范型程序設計的支持在C++設計的后期才被作為一個明確、獨立的目標來實現。而在C++演化過程的大部分時間里,我一直把范型程序設計以及支持它的語言特性劃歸在“數據抽象”的大標題之下。

 

2.2  C++的設計原則(Design Principles)

在[Stroustrup,1994]中,C++的設計規則被分為基本規則、基于設計的規則、語言的技術性規則以及基于低層次程序設計的規則四個方面,分列在下文中。

[基本規則(General rules)]

l         l C++的每一步演化和發展必須是由于實際問題所引起的;

l         l C++是一門語言,而不是一個完整的系統;

l         l 不能無休止的一味追求完美;

l         l C++在其存在的“當時”那個時期必須是有用處的;

l         l 每一種語言特性必須有一個有根據的、明確的實現方案;

l         l 總能提供一種變通的方法;

l         l 能為意欲支持的每一種程序設計風格提供易于理解的支持方法;

l         l 不強制于人。



  可以注意到,基本規則的最后三條暗示了兩點:對適用于真實世界中各種應用的便捷工具的強調;對程序員的技術和取向(偏好)的充分考慮。從一開始,C++面向的就是那些要做實際項目的程序員。所謂的“完美”被認為是不可能達到的,這是由于C++用戶在需求、背景和待解決問題上存在著太大的不同。況且,在一門通用目的的程序設計語言的整個生存期之內,連對“完美”一詞的詮釋都可能會有極大的改變。由此可知,在語言的演化過程中,來自用戶的反饋和語言實現者們積累的經驗才是最為重要的。



[基于設計的規則(Design-support rules)]

l         l 支持良好的設計方案;

l         l 提供用于程序組織的語言設施;

l         l 心口如一(Say what you mean);

l         l 所有的語言特性必須具有切實有效的承受能力;

l         l 開啟一個有用的特性比避免所有的誤用更為重要;

l         l 能將獨立開發的部件組合成完整的軟件。

C++的一個目標就是提供更易用并具有一定承受能力的設計思想和程序設計技術,進一步提高程序的質量。這些技術中的絕大部分都源自Simula [Dahl,1970][Dahl,1972][Birtwistle,1979],并通常被作為面向對象程序設計和面向對象設計思想來討論。然而,C++的設計目標總還是在于要支持一定范圍內的各種程序設計風格和設計思想。這與一般在語言設計方面的觀點形成一定對比。一般在語言設計上總是試圖將所有系統內建于單獨一個被重點支持的、帶有強制性的程序設計風格之中(或稱典范paradigm)。



[語言的技術性規則(Language-technical rules)]

l         l 與靜態型別系統(Static type system)沒有內在的沖突;

l         l 像對內建(built-in)型別一樣對用戶自定義型別提供很好的支持;

l         l 個異化(locality)行為是可取的;

l         l 避免產生順序上的依賴關系;

l         l 在對語言產生疑惑時,可以選取其特性中最易掌握的部分;

l         l 可以因為不正當的語法使用而產生問題(Syntax matters (often in perverse ways))

l         l 削弱對預處理器的使用。



  當然,這些規則要具體結合更多關于基本目標的上下文環境來考慮。應該注意到的是,在“與C有較高的兼容性”、“不損失效率”以及“具有便捷的可用性來解決實際問題”這三個方面的要求,與在“完整的型別安全性”、“完全的通用性”以及“完善的抽象之美”這三個方面的要求形成對立。

  C++從Simula中借鑒了用戶自定義型別(class,§4.1)和類層次機制。然而,在Simula及許多類似的語言中,其對用戶自定義型別的支持與其對內建型別的支持存在著根本上的不同。例如,Simula中不允許在棧中為用戶自定義型別的對象分配空間,并且只允許通過指針(這在Simula中稱為引用——reference)來對這些對象進行訪問。而相反的,內建型別的對象只在棧中被分配空間,不能在動態存儲區中分配,而且不能使用指針指向它。這種在對待內建型別與對待用戶自定義型別上的差異,暗示著對效率問題的嚴格考慮。比如,當作為一個在動態存儲區中被分配的對象之引用時,如果該對象屬于自定義型別(比如complex,§4.1),那么就會為運行期及空間帶來負荷;而這些負荷在有些應用中被認為是不可接受的。這些正是C++意欲涉足解決的問題。同時,在用法上的不同也決定了:不可能在范型程序設計中統一對待那些語義上近似的型別。

  在維護一個較龐大的程序時,一個程序員不可避免的會基于某些不完整的知識來對程序作一些修改,只關注全部程序代碼中的一小部分。基于此,C++提供了class(§4)、namespace(§5.2)和訪問控制(§4.1),使設計決策的各異化(locality)成為可能。

  在基于一趟編譯(one-pass compilation)的語言中,某些順序上的依賴性是不可避免的。例如在C++中,一個變量或者函數在其被聲明之前是無法使用的。然而,C++中類成員的名字規則和重載解析(overload resolution)的規則還是在獨立于聲明順序的原則下被制定出來,以便將發生混亂和錯誤的可能性降至最低。

[基于低層次程序設計的規則(Low-level programming support rules)]

l         l 使用傳統的(笨拙的)連接器(linker);

l         l 與C語言不存在無故的不兼容性;

l         l 不給C++之下層級的更低層語言留出余地(匯編語言除外);

l         l 你不會為你所不使用的部分付出代價(零負荷規則);

l         l 在產生疑惑時,能提供完全自主控制的途徑。

  在C++的設計中只要在不嚴重影響其對強型別檢查(strong type checking)的支持的地方,都盡量做到與C的“source-link”方式相兼容。除了某些微小的細節差別之外,C++將C[Kernighan,1978][Kernighan,1988]作為一個子集包含了進來。C++與C的兼容性使得C++程序員立刻就能有一個完整的語言和工具集可用。還有兩點也很重要,一是有大量關于C的高質量的教學素材已經存在,二是C++程序員可以利用C++與C的兼容性而直接并有效的使用大量現成的程序庫。在決定將C作為C++的基礎的時候,C還沒有像后來那樣出類拔萃、炙手可熱,所以在考慮這個問題的時候,與C語言所提供的可適應性和高效性相比,C語言的流行程度只是個次要的考慮因素。

然而,與C的兼容性也使得C++在某些語法和語義上保留了C的一些瑕疵之處。比如,C語言的聲明語法就實在遠不及優美;而其內建型別的隱式轉換規則也是混亂無章法的。還有另一個大問題,就是許多從C轉向C++的程序員并沒有認識到,代碼質量上的顯著提高只能通過在程序設計風格上的顯著改變來達到。

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美亚洲精品一区| 国产日韩一级二级三级| 日韩精品一区二区三区swag| 久久久久久久综合狠狠综合| 一区二区三区在线观看国产| 久久激五月天综合精品| 色哟哟精品一区| 久久午夜羞羞影院免费观看| 五月开心婷婷久久| 99vv1com这只有精品| 欧美成人女星排行榜| 亚洲国产综合91精品麻豆| 国产69精品久久久久毛片 | 亚洲理论在线观看| 久热成人在线视频| 精品视频一区 二区 三区| 中文字幕欧美区| 国产一区二区不卡| 欧美成人女星排名| 天堂一区二区在线| 欧美性感一区二区三区| 综合中文字幕亚洲| 成人avav在线| 国产精品久久久久久久久免费相片 | 欧美伦理视频网站| 一区二区三区久久| 色诱亚洲精品久久久久久| 国产精品家庭影院| 岛国一区二区在线观看| 精品国一区二区三区| 美国精品在线观看| 欧美一区二区黄| 视频一区二区欧美| 欧美亚洲一区二区三区四区| 亚洲精品欧美二区三区中文字幕| av在线不卡电影| 国产精品国产自产拍在线| 成人综合在线视频| 国产精品福利一区二区三区| 99久久亚洲一区二区三区青草| 中文欧美字幕免费| 不卡一卡二卡三乱码免费网站| 中文字幕欧美三区| av在线不卡电影| 亚洲精品久久久蜜桃| 在线亚洲人成电影网站色www| 亚洲色图在线看| 欧美亚日韩国产aⅴ精品中极品| 一区二区理论电影在线观看| 欧美视频一区二区三区四区 | www.日韩精品| 亚洲精品久久7777| 7777精品伊人久久久大香线蕉经典版下载 | 亚洲夂夂婷婷色拍ww47| 欧美特级限制片免费在线观看| 亚洲电影你懂得| 日韩免费高清视频| 成人一区二区三区在线观看| 亚洲婷婷综合久久一本伊一区| 欧美在线观看视频一区二区| 日本成人在线看| 欧美国产成人在线| 精品视频免费看| 国产一区二区三区日韩| 亚洲品质自拍视频网站| 欧美精品在线一区二区三区| 国产一区在线精品| 一区二区三区美女| 欧美精品一区男女天堂| 成人久久18免费网站麻豆| 亚洲一区二区精品3399| 26uuu色噜噜精品一区| 色悠悠久久综合| 韩国理伦片一区二区三区在线播放| 国产精品国产自产拍在线| 欧美日韩免费电影| 色94色欧美sute亚洲线路二| 午夜av一区二区三区| 国产日韩欧美激情| 欧美一区二区不卡视频| 成人av午夜电影| 秋霞av亚洲一区二区三| 亚洲视频免费在线观看| 欧美大片拔萝卜| 欧美亚州韩日在线看免费版国语版 | 国产精品一区二区久久精品爱涩 | 国产999精品久久| 亚洲动漫第一页| 国产欧美精品一区二区三区四区| 欧美日韩精品一区二区三区| 成人永久免费视频| 青青国产91久久久久久| 又紧又大又爽精品一区二区| 久久精品夜色噜噜亚洲a∨| 欧美精品国产精品| a在线欧美一区| 国产一区二区三区av电影| 亚洲444eee在线观看| 最新国产精品久久精品| 久久久精品蜜桃| 精品国产一区二区三区忘忧草| 欧美日韩视频专区在线播放| 91啪亚洲精品| 成人18精品视频| 国产成人免费9x9x人网站视频| 青青草成人在线观看| 亚洲精品国久久99热| 中文字幕一区视频| 国产精品久久国产精麻豆99网站 | 麻豆成人综合网| 婷婷久久综合九色国产成人| 一区二区三区久久| 综合激情网...| 自拍av一区二区三区| 中文字幕+乱码+中文字幕一区| 精品国产第一区二区三区观看体验| 在线播放亚洲一区| 欧美另类videos死尸| 欧美日韩亚洲综合一区| 欧美亚洲禁片免费| 欧美日本在线视频| 欧美日韩国产一区二区三区地区| 欧美中文字幕一区二区三区亚洲| 一本大道综合伊人精品热热| 色综合一个色综合| 欧美亚洲图片小说| 在线播放中文一区| 日韩精品一区在线观看| 精品国产乱码久久久久久1区2区 | 美女一区二区视频| 久久精品国产999大香线蕉| 极品美女销魂一区二区三区| 国产精品一区在线观看你懂的| 国产精品一区二区黑丝| av在线一区二区三区| 色婷婷av一区二区三区gif| 欧美三日本三级三级在线播放| 欧美日韩精品欧美日韩精品一 | 91麻豆精品国产无毒不卡在线观看 | 欧美私人免费视频| 欧美一区二区视频在线观看2020 | 精品少妇一区二区三区在线视频| 欧美精品一区二区不卡 | 欧美一区二区三区成人| 久久香蕉国产线看观看99| 国产欧美一区二区三区在线看蜜臀| 中文字幕欧美激情一区| 亚洲制服丝袜av| 久久成人av少妇免费| 成人h精品动漫一区二区三区| 在线观看av一区二区| 欧美videossexotv100| 欧美国产一区在线| 亚洲一区二区三区中文字幕| 久久99在线观看| 91老师国产黑色丝袜在线| 日韩亚洲欧美中文三级| 中文字幕不卡的av| 天天操天天色综合| 成人午夜电影网站| 制服丝袜一区二区三区| 国产精品久久久爽爽爽麻豆色哟哟| 亚洲国产视频直播| 国产风韵犹存在线视精品| 欧美四级电影网| 欧美激情一区二区三区全黄| 丝袜a∨在线一区二区三区不卡| 大陆成人av片| 337p亚洲精品色噜噜噜| 亚洲美女屁股眼交3| 国产精品一区二区在线观看网站 | 自拍偷拍国产精品| 久久国内精品视频| 欧洲精品中文字幕| 亚洲国产高清aⅴ视频| 日本91福利区| 色八戒一区二区三区| 国产欧美va欧美不卡在线| 日韩精品欧美精品| 色婷婷久久综合| 亚洲国产成人私人影院tom| 日本中文一区二区三区| 色悠久久久久综合欧美99| 欧美国产一区二区在线观看| 美腿丝袜在线亚洲一区| 欧美日韩视频一区二区| 亚洲四区在线观看| 成熟亚洲日本毛茸茸凸凹| 精品国产乱码久久久久久闺蜜| 日韩精品久久久久久| 欧美羞羞免费网站| 亚洲欧美成人一区二区三区| 丰满亚洲少妇av| 久久久久久久久久久黄色| 久久国产综合精品| 欧美成人精品1314www| 国产高清久久久久| 日韩欧美www| 麻豆国产欧美日韩综合精品二区| 欧美日韩激情一区|