一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - C/C++ - C++基礎概念講述

C++基礎概念講述

2022-03-10 14:28一個熱愛學習的深度渣渣 C/C++

這篇文章主要介紹了C++基礎概念,? 本次為C++的一個開篇,重點是更好的理解C++相對于其他編程語言的一個特性,之后會持續更新,本次專欄計劃是掌握C++的基礎語法以及常用特性,并且從細節上去理解,需要的朋友可以參考一下

首先,通過一張最新(2021.11)的編程語言排名圖來了解常見的編程語言:

C++基礎概念講述

從圖中可以看出,C++的排名相對于Python、Java、C來說并不突出,很大的原因是因為C++難度過大,也可以說是知識點太多,我們很難說能精通C++這門語言,只能說對它的部分了解,并能在工作中使用;

1.C++相關網站推薦

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

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

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

2.C++和C的關系

簡單來說,C++是C語言的擴展,主要有以下兩方面;

首先關注性能方面,這是繼承于C語言的特性:

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

接著是擴展部分,引入大量特性,便于工程實踐

三種編程范式:面向過程、面向對象、泛型
函數重載、異常處理、引用

最后,C++也是一系列不斷演進的標準集合

  • C++98、C++11、C++14、C++17、C++20、C++23?
  • 語言本身的改進(例如Memory Model、Lambda Expressiomn)
  • 標準庫的改進(auto_ptr、type_train/ranges)
  • C++標準的工業實現(MSVC、GCC、Clang)等編譯器還存在差異;

3.C++特性說明

下面通過具體案例來說明上面列出的點

3.1與底層硬件緊密結合

打開網站: https://godbolt.org/z/xPq6e9

運行其中的案例可以發現,輸出的數從大到小;

C++基礎概念講述

? 其實在硬件底層,存放內存的地址分為大端法和小端法,而C++可以很好的適應不同硬件的存儲方式,這樣有助于提升性能,相比來說,JAVA就不考慮這些,導致數據存放到內存還需要再做一些處理,會增加一定的時間;

3.2對象生命周期的精確控制

? 這里我們使用C++與C#做比較,對于C#而言,使用完一個對象并不用關注銷毀,底層會自動進行銷毀(垃圾回收機制);而C++從對象的創建、使用到銷毀都需要使用者自己執行,不需要系統額外引用機制;這里有兩個需要平衡的點,也就是易用和性能,這兩者是有一定取舍的;

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

C++基礎概念講述

C++基礎概念講述

造成這處理異常不同的原因就是生命周期精確控制引發的,Finally主要是用來顯式銷毀對象;

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

3.3Zero-Overhead Abstraction

主要包含以下兩點:

不需要為沒有使用的語言特性付出代價
例如虛函數,或者說在堆或棧構造對象,可以通過這個例子來理解:Compiler Explorer (godbolt.org)

使用一些語言特性不等于付出運行期成本
可以通過這個例子來理解:Compiler Explorer (godbolt.org)

我們調用函數并沒有付出函數中的運行成本,這也是由于函數在編譯期執行;

到此這篇關于C++基礎概念講述的文章就介紹到這了,更多相關C++基礎概念內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/weixin_40620310/article/details/121184398

延伸 · 閱讀

精彩推薦
  • C/C++詳解c語言中的 strcpy和strncpy字符串函數使用

    詳解c語言中的 strcpy和strncpy字符串函數使用

    strcpy 和strcnpy函數是字符串復制函數。接下來通過本文給大家介紹c語言中的strcpy和strncpy字符串函數使用,感興趣的朋友跟隨小編要求看看吧...

    spring-go5642021-07-02
  • C/C++c++ 單線程實現同時監聽多個端口

    c++ 單線程實現同時監聽多個端口

    這篇文章主要介紹了c++ 單線程實現同時監聽多個端口的方法,幫助大家更好的理解和學習使用c++,感興趣的朋友可以了解下...

    源之緣11542021-10-27
  • C/C++深入理解goto語句的替代實現方式分析

    深入理解goto語句的替代實現方式分析

    本篇文章是對goto語句的替代實現方式進行了詳細的分析介紹,需要的朋友參考下...

    C語言教程網7342020-12-03
  • C/C++學習C++編程的必備軟件

    學習C++編程的必備軟件

    本文給大家分享的是作者在學習使用C++進行編程的時候所用到的一些常用的軟件,這里推薦給大家...

    謝恩銘10102021-05-08
  • C/C++C語言中炫酷的文件操作實例詳解

    C語言中炫酷的文件操作實例詳解

    內存中的數據都是暫時的,當程序結束時,它們都將丟失,為了永久性的保存大量的數據,C語言提供了對文件的操作,這篇文章主要給大家介紹了關于C語言中文件...

    針眼_6702022-01-24
  • C/C++C/C++經典實例之模擬計算器示例代碼

    C/C++經典實例之模擬計算器示例代碼

    最近在看到的一個需求,本以為比較簡單,但花了不少時間,所以下面這篇文章主要給大家介紹了關于C/C++經典實例之模擬計算器的相關資料,文中通過示...

    jia150610152021-06-07
  • C/C++C語言實現電腦關機程序

    C語言實現電腦關機程序

    這篇文章主要為大家詳細介紹了C語言實現電腦關機程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    xiaocaidayong8482021-08-20
  • C/C++C++之重載 重定義與重寫用法詳解

    C++之重載 重定義與重寫用法詳解

    這篇文章主要介紹了C++之重載 重定義與重寫用法詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下...

    青山的青6062022-01-04
主站蜘蛛池模板: 蜜色网| 国产免费资源高清小视频在线观看 | 校花被强迫np肉高h 校服下的白嫩小乳尖h1v1 | 日本一片免费观看高清完整 | 袖珍人与大黑人性视频 | 欧美一区二区三区精品国产 | 国产欧美精品一区二区三区–老狼 | 日韩成人影视 | 国产欧美另类 | 欧美三级不卡在线观线看高清 | 好猛好紧好硬使劲好大刺激视频 | 99视频全部看免费观 | 四虎在线观看 | 人人爽人人香蕉 | kkkk4444在线看片| 波多野结衣家庭教师 | 美女的隐私无遮挡的网页 | 国产一卡2卡3卡四卡国色天香 | 国产精品嫩草影院一二三区 | 国产愉拍精品视频手机 | 美女一线天| 爱福利一区二区 | 国产精品久久久久影院色老大 | 四虎免费入口 | 国产成人综合亚洲一区 | 国产二区视频 | 久久久久青草大香线综合精品 | 无人区在线观看免费视频国语 | 国产亚洲女人久久久久久 | 天堂网在线.www天堂在线视频 | 2019年国产高清情侣视频 | 丰满肥臀风间由美357在线 | 国产高清视频 | 激情另类国内一区二区视频 | 久久er国产免费精品 | 99久久久久国产精品免费 | 国产灌醉| 草草视频免费在线观看 | 高h短篇合集| 暖暖日本高清 | 毛片在线播放a |