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

C++設計規則說明

開發 后端
其實C++設計的目標:就是提供更易用并具有一定承受能力的C++設計思想和程序設計技術,最大的優點就是便于開發人員的便捷操作。

C++語言是一門獨立的語言,并不是在C語言的基礎上,可以直接學習C++不必先從C下手,C++設計的目的就是能提供更易用并具有一定承受能力的C++設計思想和程序設計技術。

C++在其存在的“當時”那個時期必須是有用處的;每一種語言特性必須有一個有根據的、明確的實現方案;總能提供一種變通的方法;能為意欲支持的每一種程序設計風格提供易于理解的支持方法;不強制于人。

可以注意到,基本規則的最后三條暗示了兩點:對適用于真實世界中各種應用的便捷工具的強調;對程序員的技術和取向(偏好)的充分考慮。從一開始,C++面向的就是那些要做實際項目的程序員。

所謂的“完美”被認為是不可能達到的,這是由于C++用戶在需求、背景和待解決問題上存在著太大的不同。況且,在一門通用目的的程序設計語言的整個生存期之內,連對“完美”一詞的詮釋都可能會有極大的改變。由此可知,在語言的演化過程中,來自用戶的反饋和語言實現者們積累的經驗才是最為重要的。

提供用于程序組織的語言設施;心口如一(Say what you mean);所有的語言特性必須具有切實有效的承受能力;開啟一個有用的特性比避免所有的誤用更為重要;能將獨立開發的部件組合成完整的軟件。

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

與靜態型別系統(Static type system)沒有內在的沖突;像對內建(buit-in)型別一樣對用戶自定義型別提供很好的支持;個異化(ocaity)行為是可取的;避免產生順序上的依賴關系;在對語言產生疑惑時,可以選取其特性中最易掌握的部分;可以因為不正當的語法使用而產生問題(Syntax matters (often in perverse ways))削弱對預處理器的使用。

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

C++從Simua中借鑒了用戶自定義型別(cass,§4.1)和類層次機制。然而,在Simua及許多類似的語言中,其對用戶自定義型別的支持與其對內建型別的支持存在著根本上的不同。例如,Simua中不允許在棧中為用戶自定義型別的對象分配空間。

并且只允許通過指針(這在Simua中稱為引用——reference)來對這些對象進行訪問。而相反的,內建型別的對象只在棧中被分配空間,不能在動態存儲區中分配,而且不能使用指針指向它。

這種在對待內建型別與對待用戶自定義型別上的差異,暗示著對效率問題的嚴格考慮。比如,當作為一個在動態存儲區中被分配的對象之引用時,如果該對象屬于自定義型別(比如compex,§4.1),那么就會為運行期及空間帶來負荷;

而這些負荷在有些應用中被認為是不可接受的。這些正是C++意欲涉足解決的問題。同時,在用法上的不同也決定了:不可能在范型程序設計中統一對待那些語義上近似的型別。

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

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

[基于低層次程序設計的規則(ow-eve programming support rues)]使用傳統的(笨拙的)連接器(inker);與C語言不存在無故的不兼容性;不給C++之下層級的更低層語言留出余地(匯編語言除外);你不會為你所不使用的部分付出代價(零負荷規則);在產生疑惑時,能提供完全自主控制的途徑。

C++設計中只要在不嚴重影響其對強型別檢查(strong type checking)的支持的地方,都盡量做到與C的“source-ink”方式相兼容。除了某些微小的細節差別之外,C++將C[Kernighan,1978][Kernighan,1988]作為一個子集包含了進來。

C++與C的兼容性使得C++程序員立刻就能有一個完整的語言和工具集可用。還有兩點也很重要,一是有大量關于C的高質量的教學素材已經存在,二是C++程序員可以利用C++與C的兼容性而直接并有效的使用大量現成的程序庫。

在決定將C作為C++的基礎的時候,C還沒有像后來那樣出類拔萃、炙手可熱,所以在考慮這個問題的時候,與C語言所提供的可適應性和高效性相比,C語言的流行程度只是個次要的考慮因素。

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

【編輯推薦】

  1. C與C++中標準輸入實現方式上的一點區別
  2. C++編譯器如何對Const常量進行分配存儲空間
  3. C++類庫設計的基本構思與方法
  4. 玩轉C++語言的幾種方法
  5. 如何更好的進行C++代碼編制
責任編輯:chenqingxiang 來源: 新聞晨報
相關推薦

2010-01-26 13:36:27

C++設計

2010-01-15 19:34:25

C++設計

2010-01-11 17:34:37

C++語言

2010-01-27 14:24:15

C++程序設計

2010-01-14 17:42:47

CC++

2010-01-20 10:19:55

C++數組

2010-01-26 10:42:26

C++函數

2010-01-26 13:42:28

C++指針

2010-01-19 13:43:59

C++函數

2010-01-28 11:08:09

C++變量

2010-01-28 13:27:12

C++類定義

2010-01-25 17:55:38

C++頭文件

2010-01-08 16:10:59

C++語言

2010-01-25 18:19:17

C++特性

2010-01-27 10:22:53

C++基類

2010-01-21 15:07:31

C++開發

2010-01-19 17:54:47

C++程序

2010-01-25 18:19:17

C++特性

2010-01-25 18:19:17

C++特性

2010-01-12 10:40:22

C++程序員
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久久国产精品一区 | 久久精品无码一区二区三区 | 黄色av网站在线免费观看 | 国产精品欧美一区二区三区不卡 | 电影91久久久| 欧洲视频一区二区 | 国产亚洲一区二区精品 | 逼逼视频| 在线免费观看视频黄 | 精品少妇一区二区三区日产乱码 | 色资源站 | 精品久久久久久久人人人人传媒 | 国产福利在线视频 | 欧美精品久久 | 国产精品视频久久久 | 啪啪网页 | 成人免费淫片aa视频免费 | 午夜免费在线电影 | 国产成人在线播放 | 国产不卡在线观看 | 久久国产精品免费一区二区三区 | 一本一道久久a久久精品蜜桃 | 久久久久国产一区二区 | 久久香焦| 一区在线播放 | 手机看片在线播放 | 日本久久www成人免 成人久久久久 | 日本大香伊一区二区三区 | 天天天久久久 | 欧美白人做受xxxx视频 | 午夜影院在线观看 | 久久精品日产第一区二区三区 | 国产综合在线视频 | 亚洲网址 | 三级在线视频 | 中文字幕在线一区 | 欧美日韩亚洲一区 | 欧美一区2区三区3区公司 | 欧美激情综合 | 伊人久久大香线 | 国产一区二区在线免费播放 |