黄色一级毛片网站_日韩在线国产_国产一级a在线观看_亚洲综合一区在线_99av视频_久久久7

當前位置:首頁 > IT課程問答

淺談C++發展以及在實踐中的使用經驗 時間:2023-04-23      來源:華清遠見

一、C++發展

C++語言由C語言發展而來,是以面向對象為主要特征的語言。它是20世紀80年代初由貝爾實驗室的BjarenStroustrup博士發明的,最初稱為“帶類的C”,1983年正式命名為C++。有一個關于C++名字的笑話是,當你使用后綴++時,附加只發生在運算之后(因此,它應該是++C,而不是C++,這個笑話是說時下某些程序員還在以使用C的方式使用C++,這通常被一些權威著作認為是不正確的)。

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

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

1985年,發布第一版《C++程序設計語言》,提供一個重點的語言參考,至此還不是官方標準。

1989年,發布了Release 2.0。引入了多重繼承、抽象類別、靜態成員函數、常量成員函數,以及成員保護。1990年,出版了《The Annotated C++ Reference Manual》。這本書后來成為標準化的基礎。稍后還引入了模板、異常處理、名字空間、新的強制類型轉換,以及布爾類型。

隨著C++語言的演變,也逐漸演化出相應的標準程序庫。最先加進C++標準庫的是流I/O庫,其用以取代傳統的C函數,如printf和scanf。隨后所引入的程序庫中最重要的便是標準模板庫,簡稱STL。

多年后,ISO委員會于1998年對C++標準化。在官方發布1998標準的若干年后,委員會處理缺陷報告,并于2003年發布一個C++標準的修正版本。2005年,一份名為《Library Technical Report 1》的技術報告發布。雖然還不是官方標準的一部分,不過它所提供的幾個擴展可望成為下一版C++標準的一部分。

目前最新的C++標準是2020年12月發布的ISO/IEC 14882:2020[5],又稱C++20。

原來版本中來不及引入的內容,以及語言機制中發現的一些缺陷,都在新的版本中得以彌補和發展。新版標準中引入了無序容器,以及彌補原版標準中對hash容器的缺漏:新版標準支持移動構造函數和移動賦值運算符,以減小特定場景下對象拷貝的性能開銷。新版本標準不僅在語法上增加了大量的特性,而且在標準庫里也引入大量設施,使得標準庫對于C++語言的重要性遠超從前。學習新的C++風格,不是一朝一夕,熟練掌握rvalue reference、move 語義,了解unique_ptr、shared_ptr和weak_ptr的完整用法,明智的使用function/bind和lambda機制,學習C++ Concurrency的新技術,對于初學者的話更不簡單。

二、經驗淺談

我們再來說說C++的應用領域,目前有三大類∶

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

另外就是一些基礎軟件和高級語言的運行時環境,如大型數據庫軟件、Java虛擬機、C#的CLR、Python編譯器和運行時環境等;

第三類就是一些業務型應用軟件的后臺,像游戲的服務器后臺,如魔獸世界的服務和一些企業內部的應用系統。

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

 

 

操作系統選擇Windows,使用語言C++,這款產品的實現技術分為UI和網絡通信部分。

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

(2)網絡通信部分:有兩大塊,第一個是程序啟動時與服務器交互;第二個是文件下載與分享的P2P網絡。

同學們面臨的的一個重要任務就是快速掌握新的C++風格和工具。C++同時支持4種不同的編程風格:面向過程、基于對象、面向對象和泛型編程,還可以加上一種“基于組件”的風格,這么多的風格共存于一種語言就是其強大抽象機制的證明。

在實踐中,不必全面地使用C++語言的各種特性,而應根據工程項目的實際情況,比如動態類型信息、虛擬繼承、異常等特性的使用有待商榷。通常使用C++語言的一個子集就夠了。盡管在工程中使用C++子集,但全面地學習C++語言還是有必要的,畢竟C++語言是一個整體,并且C++標準庫自身全面地使用了C++語言的各種特性。

最后說下面試問題,如果你是想進入大型互聯網公司的應屆生,應該優先好好準備算法和數據結構以應對面試,這是大型互聯網公司面試頻率最高的考察范圍;如果是社會人士參加C++職位的面試,如果是大型互聯網公司,雖然社招問的更多的是項目經驗,但適當準備一些基礎的算法和數據結構知識也是非常有用的。


上一篇:STM32芯片型號命名規則

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

戳我查看2024年嵌入式每月就業風云榜

點我了解華清遠見高校學霸學習秘籍

猜你關心企業是如何評價華清學員的

干貨分享
相關新聞
前臺專線:010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2024 北京華清遠見科技發展有限公司 版權所有 ,京ICP備16055225號-5京公海網安備11010802025203號

回到頂部

主站蜘蛛池模板: 狠狠操2024 | 国产亚洲在线 | 最新理论三级中文在线观看 | 国产7座suv精品麻豆啪最新 | 亚洲精品乱码久久久久膏 | 久久久精品观看 | 国产高清中文字幕 | 一级片国产 | 国产三级午夜理伦三级连载时间 | 国产一级成人片免费视频野外 | 一区二区三区不卡视频 | 国产精品精品久久久久久潘金莲 | 国产一区二区三区精品在线 | 国产放荡AV剧情演绎麻豆 | 亚洲第一无码av无码专区 | 福利片在线观看 | 欧美一级久久久久久久大片 | 亚洲精品国产综合区久久久久久久 | 蜜桃国内精品久久久久软件9 | 6080yy午夜不卡一二三区 | 一本毛片 | 成人免费看片视频 | 久久久精品区 | 一级毛片成人免费看免费不卡 | 精品二区久久 | 色七七桃花影院 | 亚洲第一页夜 | gogo午夜影院 | av在线免费看网站 | 9999视频 | 国产91丝袜香蕉在线播放 | 国产精品一区二区欧美视频 | 国产在成人精品线拍偷自揄拍 | 成人国产一区二区精品 | 国产中文黄色三级三级看三级 | 99精品高清在线播放 | 国产亚洲精品岁国产微拍精品 | 国产日本在线播放 | 精品不卡一区中文字幕 | 欧美激情一二区 | 欧日韩国产无码专区 |