欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++基礎(chǔ)概念講述

 更新時(shí)間:2022年01月24日 16:41:55   作者:一個(gè)熱愛(ài)學(xué)習(xí)的深度渣渣  
這篇文章主要介紹了C++基礎(chǔ)概念,??本次為C++的一個(gè)開(kāi)篇,重點(diǎn)是更好的理解C++相對(duì)于其他編程語(yǔ)言的一個(gè)特性,之后會(huì)持續(xù)更新,本次專欄計(jì)劃是掌握C++的基礎(chǔ)語(yǔ)法以及常用特性,并且從細(xì)節(jié)上去理解,需要的朋友可以參考一下

首先,通過(guò)一張最新(2021.11)的編程語(yǔ)言排名圖來(lái)了解常見(jiàn)的編程語(yǔ)言:

從圖中可以看出,C++的排名相對(duì)于Python、Java、C來(lái)說(shuō)并不突出,很大的原因是因?yàn)镃++難度過(guò)大,也可以說(shuō)是知識(shí)點(diǎn)太多,我們很難說(shuō)能精通C++這門語(yǔ)言,只能說(shuō)對(duì)它的部分了解,并能在工作中使用;

1.C++相關(guān)網(wǎng)站推薦

1、cppreference.com:這是一個(gè)C++最具權(quán)威的百科全書,但只有英文模式,相信大家可以看懂的;

2、Compiler Explorer (godbolt.org) :在線代碼編輯,可以直接生成匯編代碼,可選擇不同的編譯器和版本,功能強(qiáng)大;

3、C++ Insights (cppinsights.io) :一個(gè)可以將C++代碼及逆行翻譯的網(wǎng)頁(yè),具體化代碼高級(jí)功能;

2.C++和C的關(guān)系

簡(jiǎn)單來(lái)說(shuō),C++是C語(yǔ)言的擴(kuò)展,主要有以下兩方面;

首先關(guān)注性能方面,這是繼承于C語(yǔ)言的特性:

  • 與底層硬件緊密結(jié)合
  • 對(duì)象生命周期的精確控制
  • Zero-overhead Abstraction

接著是擴(kuò)展部分,引入大量特性,便于工程實(shí)踐

三種編程范式:面向過(guò)程、面向?qū)ο蟆⒎盒?br />函數(shù)重載、異常處理、引用

最后,C++也是一系列不斷演進(jìn)的標(biāo)準(zhǔn)集合

  • C++98、C++11、C++14、C++17、C++20、C++23?
  • 語(yǔ)言本身的改進(jìn)(例如Memory Model、Lambda Expressiomn)
  • 標(biāo)準(zhǔn)庫(kù)的改進(jìn)(auto_ptr、type_train/ranges)
  • C++標(biāo)準(zhǔn)的工業(yè)實(shí)現(xiàn)(MSVC、GCC、Clang)等編譯器還存在差異;

3.C++特性說(shuō)明

下面通過(guò)具體案例來(lái)說(shuō)明上面列出的點(diǎn)

3.1與底層硬件緊密結(jié)合

打開(kāi)網(wǎng)站: https://godbolt.org/z/xPq6e9

運(yùn)行其中的案例可以發(fā)現(xiàn),輸出的數(shù)從大到?。?/strong>

? 其實(shí)在硬件底層,存放內(nèi)存的地址分為大端法和小端法,而C++可以很好的適應(yīng)不同硬件的存儲(chǔ)方式,這樣有助于提升性能,相比來(lái)說(shuō),JAVA就不考慮這些,導(dǎo)致數(shù)據(jù)存放到內(nèi)存還需要再做一些處理,會(huì)增加一定的時(shí)間;

3.2對(duì)象生命周期的精確控制

? 這里我們使用C++與C#做比較,對(duì)于C#而言,使用完一個(gè)對(duì)象并不用關(guān)注銷毀,底層會(huì)自動(dòng)進(jìn)行銷毀(垃圾回收機(jī)制);而C++從對(duì)象的創(chuàng)建、使用到銷毀都需要使用者自己執(zhí)行,不需要系統(tǒng)額外引用機(jī)制;這里有兩個(gè)需要平衡的點(diǎn),也就是易用和性能,這兩者是有一定取舍的;

下面是C++和C#對(duì)于異常的處理方式:

造成這處理異常不同的原因就是生命周期精確控制引發(fā)的,F(xiàn)inally主要是用來(lái)顯式銷毀對(duì)象;

對(duì)生命周期的精準(zhǔn)控制的好處:能夠及時(shí)釋放資源,并且不需要額外資源(線程)進(jìn)行垃圾回收,提高了性能;

3.3Zero-Overhead Abstraction

主要包含以下兩點(diǎn):

不需要為沒(méi)有使用的語(yǔ)言特性付出代價(jià)
例如虛函數(shù),或者說(shuō)在堆或棧構(gòu)造對(duì)象,可以通過(guò)這個(gè)例子來(lái)理解:Compiler Explorer (godbolt.org)

使用一些語(yǔ)言特性不等于付出運(yùn)行期成本
可以通過(guò)這個(gè)例子來(lái)理解:Compiler Explorer (godbolt.org)

我們調(diào)用函數(shù)并沒(méi)有付出函數(shù)中的運(yùn)行成本,這也是由于函數(shù)在編譯期執(zhí)行;

到此這篇關(guān)于C++基礎(chǔ)概念講述的文章就介紹到這了,更多相關(guān)C++基礎(chǔ)概念內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 初學(xué)C++之自定義類型名簡(jiǎn)化詳解

    初學(xué)C++之自定義類型名簡(jiǎn)化詳解

    下面小編就為就大家?guī)?lái)一篇初學(xué)C++之自定義類型名簡(jiǎn)化詳解。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-09-09
  • C++基于EasyX圖形庫(kù)實(shí)現(xiàn)2048小游戲

    C++基于EasyX圖形庫(kù)實(shí)現(xiàn)2048小游戲

    這篇文章主要為大家詳細(xì)介紹了C++基于EasyX圖形庫(kù)實(shí)現(xiàn)2048小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • C/C++實(shí)現(xiàn)投骰子游戲

    C/C++實(shí)現(xiàn)投骰子游戲

    這篇文章主要為大家詳細(xì)介紹了C/C++實(shí)現(xiàn)投骰子游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • Vs2022環(huán)境下安裝低版本.net framework的實(shí)現(xiàn)步驟

    Vs2022環(huán)境下安裝低版本.net framework的實(shí)現(xiàn)步驟

    本文主要介紹了Vs2022環(huán)境下安裝低版本.net framework的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • C++中帶空格字符串的輸入問(wèn)題解決

    C++中帶空格字符串的輸入問(wèn)題解決

    這篇文章主要給大家介紹了關(guān)于如何解決C++中帶空格字符串的輸入問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-04-04
  • Matlab實(shí)現(xiàn)統(tǒng)計(jì)集合中各元素出現(xiàn)次數(shù)的示例代碼

    Matlab實(shí)現(xiàn)統(tǒng)計(jì)集合中各元素出現(xiàn)次數(shù)的示例代碼

    統(tǒng)計(jì)數(shù)組中各個(gè)元素?cái)?shù)量是一個(gè)很常用的功能,本文主要為大家介紹了如何利用Matlab優(yōu)雅的統(tǒng)計(jì)集合中各元素出現(xiàn)的次數(shù),感興趣的可以了解一下
    2022-05-05
  • 深入淺析C語(yǔ)言中堆棧和隊(duì)列

    深入淺析C語(yǔ)言中堆棧和隊(duì)列

    這篇文章主要介紹了深入淺析C語(yǔ)言中堆棧和隊(duì)列的相關(guān)資料,需要的朋友可以參考下
    2016-06-06
  • 關(guān)于vs strcpy_s()和strcat_s()用法探究

    關(guān)于vs strcpy_s()和strcat_s()用法探究

    這篇文章主要介紹了關(guān)于vs strcpy_s()strcat_s()用法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • C++實(shí)現(xiàn)拷貝構(gòu)造函數(shù)的方法詳解

    C++實(shí)現(xiàn)拷貝構(gòu)造函數(shù)的方法詳解

    拷貝構(gòu)造函數(shù)是構(gòu)造函數(shù)的一個(gè)重載,因此顯式的定義了拷貝構(gòu)造,那么編譯器也不再默認(rèn)生成構(gòu)造函數(shù)。本文主要介紹了C++實(shí)現(xiàn)拷貝構(gòu)造函數(shù)的方法,需要的可以參考一下
    2022-09-09
  • C#委托所蘊(yùn)含的函數(shù)指針概念詳細(xì)解析

    C#委托所蘊(yùn)含的函數(shù)指針概念詳細(xì)解析

    C#中用委托這種概念實(shí)現(xiàn)了函數(shù)指針技術(shù)而已,另外.ent提供額外的安全性,當(dāng)然也損失了靈活性
    2013-09-09

最新評(píng)論