中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何理解C++的設計原則

發布時間:2021-10-27 18:28:04 來源:億速云 閱讀:315 作者:柒染 欄目:編程語言

今天就跟大家聊聊有關如何理解C++的設計原則,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

C++的設計原則就是:學習C++而言,可以認為他是一門獨立的語言,他并非依賴C語言,我們可以完全不學C語言,而直接學習C++,但是一定要擁有良好的代碼基礎,和英語功底。

與在“完整的型別安全性”、“完全的通用性”以及“完善的抽象之美”這三個方面的要求形成對立。C++的設計原則從Simula中借鑒了用戶自定義型別(class,§4.1)和類層次機制。然而,在Simula及許多類似的語言中,其對用戶自定義型別的支持與其對內建型別的支持存在著根本上的不同。例如,Simula中不允許在棧中為用戶自定。

而相反的,內建型別的對象只在棧中被分配空間,不能在動態存儲區中分配,而且不能使用指針指向它。這種在對待內建型別與對待用戶自定義型別上的差異,暗示著對效率問題的嚴格考慮。

比如,當作為一個在動態存儲區中被分配的對象之引用時,如果該對象屬于自定義型別(比如complex,§4.1),那么就會為運行期及空間帶來負荷;而這些負荷在有些應用中被認為是不可接受的。這些正是C++的設計原則意欲涉足解決的問題。同時,在用法上的不同也決定了:不可能在范型程序設計中統一對待那些語義上近似的型別。

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

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

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

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

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

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

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

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++的程序員并沒有認識到,代碼質量上的顯著提高只能通過在程序設計風格上的顯著改變來達到。

看完上述內容,你們對如何理解C++的設計原則有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

嘉祥县| 东方市| 竹北市| 洛阳市| 土默特右旗| 廉江市| 独山县| 彝良县| 亳州市| 融水| 汨罗市| 宝山区| 永福县| 大兴区| 敦化市| 定日县| 克什克腾旗| 田阳县| 申扎县| 丰宁| 托克托县| 石首市| 岐山县| 简阳市| 潞西市| 甘肃省| 洛川县| 丁青县| 罗甸县| 德钦县| 胶州市| 清河县| 延庆县| 汉川市| 汝州市| 孟连| 博野县| 渝中区| 广州市| 和顺县| 锦屏县|