目錄
首先,通過一張最新(2021.11)的程式語言排名圖來了解常見的程式語言:
從圖中可以看出,c++的排名相對於python、j**a、c來說並不突出,很大的原因是因為c++難度過大,也可以說是知識點太多,我們很難說能精通c++這門語言,只能說對它的部分了解,並能在工作中使用;
1、cppreference.com:這是乙個c++最具權威的百科全書,但只有英文模式,相信大家可以看懂的;
2、compiler explorer (godbolt.org) :****編輯,可以直接生成彙編**,可選擇不同的編譯器和版本,功能強大;
3、c++ insights (cppinsights.io) :乙個可以將c++**及逆行翻譯的網頁,具體化**高階功能;
簡單來說,c++是c語言的擴充套件,主要有以下兩方面;
首先關注效能方面,這是繼承於c語言的特性:
接著是擴充套件部分,引入大量特性,便於工程實踐
三種程式設計正規化:面向過程、物件導向、泛型
函式過載、異常處理、引用
最後,c++也是一系列不斷演進的標準集合
下面通過具體案例來說明上面列出的點
開啟**:
執行其中的案例可以發現,輸出的數從大到小;
其實在硬體底層,存放記憶體的位址分為大端法和小端法,而c++可以很好的適應不同硬體的儲存方式,這樣有助於提公升效能,相比來說,j**a就不考慮這些,導致資料存放到記憶體還需要再做一些處理,會增加一定的時間;
這裡我們使用c++與c#做比較,對於c#而言,使用完乙個物件並不用關注銷毀,底層會自動進行銷毀(垃圾**機制);而c++從物件的建立、使用到銷毀都需要使用者自己執行,不需要系統額外引用機制;這裡有兩個需要平衡的點,也就是易用和效能,這兩者是有一定取捨的;
下面是c++和c#對於異常的處理方式:
造成這處理異常不同的原因就是生命週期精確控制引發的,finally主要是用來顯式銷毀物件;
對生命週期的精準控制的好處:能夠及時釋放資源,並且不需要額外資源(執行緒)進行垃圾**,提高了效能;
主要包含以下兩點:
不需要為沒有使用的語言特性付出代價
例如虛函式,或者說在堆或棧構造物件,可以通過這個例子來理解程式設計客棧:compiler explorer (godbolt.org)
使用一些語言特性不等於付出執行期成本
可以通過這個例子來理解:compiler explorer (godbolt.org)
我們呼叫函式並沒有付出函式中的執行成本,這也是由於函www.cppcns.com數在編譯期執行;
C void基礎概念講述
c void意思是指無型別。那麼void指標則是無型別指標。他們的基本概念我們將會在這篇文章中為大家詳細介紹。c 程式語言中的很多概念都值得我們去不斷的學習,不斷的從中積累經驗以幫助我們在程式編寫時獲得更大的幫助。比如今天為大家介紹的c void就是ige比較重要的內容。許多初學者對c void及v...
C 基礎概念
1 override與過載的區別 override修飾符,覆寫乙個基類中的方法.過載則是將將同名方法重新寫過,達到同名的函式實現不同的功能.從而實現了乙個方法有不同的版 本.override與過載的本質區別是,加入了override的修飾符的方法,此方法始終只有乙個被你使用的方法.這個區別就好像 o...
C 基礎概念
面相物件開發 特性 封裝 繼承 繼承 多型 2.標準庫 核心語言,提供所有構件塊,包括變數 資料型別和常量等。c 標準庫,提供大量庫函式,用於操作檔案 字串等。標準模板庫 stl 提供了大量的方法,用於運算元據結構等。3.所有便攜遵循ansi 標準?4.環境設定 有文字編輯器 輸入 notepad軟...