国产成人精品三级麻豆,色综合天天综合高清网,亚洲精品夜夜夜,国产成人综合在线女婷五月99播放,色婷婷色综合激情国产日韩

當(dāng)前位置:首頁 > IT課程問答

淺談C++發(fā)展以及在實(shí)踐中的使用經(jīng)驗(yàn) 時(shí)間:2023-04-23      來源:華清遠(yuǎn)見

一、C++發(fā)展

C++語言由C語言發(fā)展而來,是以面向?qū)ο鬄橹饕卣鞯恼Z言。它是20世紀(jì)80年代初由貝爾實(shí)驗(yàn)室的BjarenStroustrup博士發(fā)明的,最初稱為“帶類的C”,1983年正式命名為C++。有一個(gè)關(guān)于C++名字的笑話是,當(dāng)你使用后綴++時(shí),附加只發(fā)生在運(yùn)算之后(因此,它應(yīng)該是++C,而不是C++,這個(gè)笑話是說時(shí)下某些程序員還在以使用C的方式使用C++,這通常被一些權(quán)威著作認(rèn)為是不正確的)。

C++語言發(fā)展大概可以分為三個(gè)階段:第一階段從80年代到1995年。這一階段C++語言基本上是傳統(tǒng)類型上的面向?qū)ο笳Z言,并且憑借著接近C語言的效率,在工業(yè)界使用的開發(fā)語言中占據(jù)了相當(dāng)大份額;第二階段從1995年到2000年,這一階段由于標(biāo)準(zhǔn)模板庫和后來的Boost等程序庫的出現(xiàn),泛型程序設(shè)計(jì)在C++中占據(jù)了越來越多的比重。同時(shí)由于Java、C#等語言的出現(xiàn)和硬件價(jià)格的大規(guī)模下降,C++受到了一定的沖擊;第三階段從2000年至今,由于以Loki、MPL(Boost)等程序庫為代表的產(chǎn)生式編程和模板元編程的出現(xiàn),C++出現(xiàn)了發(fā)展歷史上又一個(gè)新的高峰,這些新技術(shù)的出現(xiàn)以及和原有技術(shù)的融合,使C++已經(jīng)成為當(dāng)今主流程序設(shè)計(jì)語言中最復(fù)雜的一員。

1983年,C with Classes改命名為C++(++是C語言中的自增操作符)。加入了新的特性,其中包括虛函數(shù)、函數(shù)名和運(yùn)算符重載、參考、常量、用戶可控制的自由空間存儲(chǔ)區(qū)控制、改良的類型檢查,并恢復(fù)了雙斜線(//)單行注釋(之后C99也支持了這種注釋)。

1985年,發(fā)布第一版《C++程序設(shè)計(jì)語言》,提供一個(gè)重點(diǎn)的語言參考,至此還不是官方標(biāo)準(zhǔn)。

1989年,發(fā)布了Release 2.0。引入了多重繼承、抽象類別、靜態(tài)成員函數(shù)、常量成員函數(shù),以及成員保護(hù)。1990年,出版了《The Annotated C++ Reference Manual》。這本書后來成為標(biāo)準(zhǔn)化的基礎(chǔ)。稍后還引入了模板、異常處理、名字空間、新的強(qiáng)制類型轉(zhuǎn)換,以及布爾類型。

隨著C++語言的演變,也逐漸演化出相應(yīng)的標(biāo)準(zhǔn)程序庫。最先加進(jìn)C++標(biāo)準(zhǔn)庫的是流I/O庫,其用以取代傳統(tǒng)的C函數(shù),如printf和scanf。隨后所引入的程序庫中最重要的便是標(biāo)準(zhǔn)模板庫,簡稱STL。

多年后,ISO委員會(huì)于1998年對(duì)C++標(biāo)準(zhǔn)化。在官方發(fā)布1998標(biāo)準(zhǔn)的若干年后,委員會(huì)處理缺陷報(bào)告,并于2003年發(fā)布一個(gè)C++標(biāo)準(zhǔn)的修正版本。2005年,一份名為《Library Technical Report 1》的技術(shù)報(bào)告發(fā)布。雖然還不是官方標(biāo)準(zhǔn)的一部分,不過它所提供的幾個(gè)擴(kuò)展可望成為下一版C++標(biāo)準(zhǔn)的一部分。

目前最新的C++標(biāo)準(zhǔn)是2020年12月發(fā)布的ISO/IEC 14882:2020[5],又稱C++20。

原來版本中來不及引入的內(nèi)容,以及語言機(jī)制中發(fā)現(xiàn)的一些缺陷,都在新的版本中得以彌補(bǔ)和發(fā)展。新版標(biāo)準(zhǔn)中引入了無序容器,以及彌補(bǔ)原版標(biāo)準(zhǔn)中對(duì)hash容器的缺漏:新版標(biāo)準(zhǔn)支持移動(dòng)構(gòu)造函數(shù)和移動(dòng)賦值運(yùn)算符,以減小特定場(chǎng)景下對(duì)象拷貝的性能開銷。新版本標(biāo)準(zhǔn)不僅在語法上增加了大量的特性,而且在標(biāo)準(zhǔn)庫里也引入大量設(shè)施,使得標(biāo)準(zhǔn)庫對(duì)于C++語言的重要性遠(yuǎn)超從前。學(xué)習(xí)新的C++風(fēng)格,不是一朝一夕,熟練掌握rvalue reference、move 語義,了解unique_ptr、shared_ptr和weak_ptr的完整用法,明智的使用function/bind和lambda機(jī)制,學(xué)習(xí)C++ Concurrency的新技術(shù),對(duì)于初學(xué)者的話更不簡單。

二、經(jīng)驗(yàn)淺談

我們?cè)賮碚f說C++的應(yīng)用領(lǐng)域,目前有三大類∶

第一類就是我們目前見到的各種桌面應(yīng)用平尤其 Windows桌面軟件,如QQ、安全類殺毒類軟件、各種瀏覽器等;

另外就是一些基礎(chǔ)軟件和高級(jí)語言的運(yùn)行時(shí)環(huán)境,如大型數(shù)據(jù)庫軟件、Java虛擬機(jī)、C#的CLR、Python編譯器和運(yùn)行時(shí)環(huán)境等;

第三類就是一些業(yè)務(wù)型應(yīng)用軟件的后臺(tái),像游戲的服務(wù)器后臺(tái),如魔獸世界的服務(wù)和一些企業(yè)內(nèi)部的應(yīng)用系統(tǒng)。

說的比較抽象,我們舉個(gè)例子,要開發(fā)一個(gè)類似電驢的軟件,軟件界面如下圖:

 

 

操作系統(tǒng)選擇Windows,使用語言C++,這款產(chǎn)品的實(shí)現(xiàn)技術(shù)分為UI和網(wǎng)絡(luò)通信部分。

(1)UI部分:需要對(duì)Windows的窗口、對(duì)話框、消息產(chǎn)生、派發(fā)與處理機(jī)制進(jìn)行學(xué)習(xí)了解,根據(jù)上圖的軟件功能,大致分為三大模塊,即資源、下載和分享。這三大塊可以使用Windows Tab控件去組織。

(2)網(wǎng)絡(luò)通信部分:有兩大塊,第一個(gè)是程序啟動(dòng)時(shí)與服務(wù)器交互;第二個(gè)是文件下載與分享的P2P網(wǎng)絡(luò)。

同學(xué)們面臨的的一個(gè)重要任務(wù)就是快速掌握新的C++風(fēng)格和工具。C++同時(shí)支持4種不同的編程風(fēng)格:面向過程、基于對(duì)象、面向?qū)ο蠛头盒途幊,還可以加上一種“基于組件”的風(fēng)格,這么多的風(fēng)格共存于一種語言就是其強(qiáng)大抽象機(jī)制的證明。

在實(shí)踐中,不必全面地使用C++語言的各種特性,而應(yīng)根據(jù)工程項(xiàng)目的實(shí)際情況,比如動(dòng)態(tài)類型信息、虛擬繼承、異常等特性的使用有待商榷。通常使用C++語言的一個(gè)子集就夠了。盡管在工程中使用C++子集,但全面地學(xué)習(xí)C++語言還是有必要的,畢竟C++語言是一個(gè)整體,并且C++標(biāo)準(zhǔn)庫自身全面地使用了C++語言的各種特性。

最后說下面試問題,如果你是想進(jìn)入大型互聯(lián)網(wǎng)公司的應(yīng)屆生,應(yīng)該優(yōu)先好好準(zhǔn)備算法和數(shù)據(jù)結(jié)構(gòu)以應(yīng)對(duì)面試,這是大型互聯(lián)網(wǎng)公司面試頻率最高的考察范圍;如果是社會(huì)人士參加C++職位的面試,如果是大型互聯(lián)網(wǎng)公司,雖然社招問的更多的是項(xiàng)目經(jīng)驗(yàn),但適當(dāng)準(zhǔn)備一些基礎(chǔ)的算法和數(shù)據(jù)結(jié)構(gòu)知識(shí)也是非常有用的。


上一篇:STM32芯片型號(hào)命名規(guī)則

下一篇:程序員面試時(shí),那些必須注意的事情

戳我查看2024年嵌入式每月就業(yè)風(fēng)云榜

點(diǎn)我了解華清遠(yuǎn)見高校學(xué)霸學(xué)習(xí)秘籍

猜你關(guān)心企業(yè)是如何評(píng)價(jià)華清學(xué)員的

干貨分享
相關(guān)新聞
前臺(tái)專線:010-82525158 企業(yè)培訓(xùn)洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2024 北京華清遠(yuǎn)見科技發(fā)展有限公司 版權(quán)所有 ,京ICP備16055225號(hào)-5,京公海網(wǎng)安備11010802025203號(hào)

回到頂部