C++入門到精通【第002講】

C++?簡介
C++ 是一種靜態(tài)類型的、編譯式的、通用的、大小寫敏感的、不規(guī)則的編程語言,支持過程化編程、面向?qū)ο缶幊毯头盒途幊獭?/p>
C++ 被認(rèn)為是一種中級語言,它綜合了高級語言和低級語言的特點(diǎn)。
C++ 是由 Bjarne Stroustrup 于 1979 年在新澤西州美利山貝爾實(shí)驗(yàn)室開始設(shè)計(jì)開發(fā)的。C++ 進(jìn)一步擴(kuò)充和完善了 C 語言,最初命名為帶類的C,后來在 1983 年更名為 C++。
C++ 是 C 的一個超集,事實(shí)上,任何合法的 C 程序都是合法的 C++ 程序。
注意:使用靜態(tài)類型的編程語言是在編譯時執(zhí)行類型檢查,而不是在運(yùn)行時執(zhí)行類型檢查。
一、面向?qū)ο蟪绦蛟O(shè)計(jì)
C++ 完全支持面向?qū)ο蟮某绦蛟O(shè)計(jì),包括面向?qū)ο箝_發(fā)的四大特性:
封裝(Encapsulation):封裝是將數(shù)據(jù)和方法組合在一起,對外部隱藏實(shí)現(xiàn)細(xì)節(jié),只公開對外提供的接口。這樣可以提高安全性、可靠性和靈活性。
繼承(Inheritance):繼承是從已有類中派生出新類,新類具有已有類的屬性和方法,并且可以擴(kuò)展或修改這些屬性和方法。這樣可以提高代碼的復(fù)用性和可擴(kuò)展性。
多態(tài)(Polymorphism):多態(tài)是指同一種操作作用于不同的對象,可以有不同的解釋和實(shí)現(xiàn)。它可以通過接口或繼承實(shí)現(xiàn),可以提高代碼的靈活性和可讀性。
抽象(Abstraction):抽象是從具體的實(shí)例中提取共同的特征,形成抽象類或接口,以便于代碼的復(fù)用和擴(kuò)展。抽象類和接口可以讓程序員專注于高層次的設(shè)計(jì)和業(yè)務(wù)邏輯,而不必關(guān)注底層的實(shí)現(xiàn)細(xì)節(jié)。
二、標(biāo)準(zhǔn)庫
標(biāo)準(zhǔn)的 C++ 由三個重要部分組成:
核心語言,提供了所有構(gòu)件塊,包括變量、數(shù)據(jù)類型和常量,等等。
C++ 標(biāo)準(zhǔn)庫,提供了大量的函數(shù),用于操作文件、字符串等。
標(biāo)準(zhǔn)模板庫(STL),提供了大量的方法,用于操作數(shù)據(jù)結(jié)構(gòu)等。
三、ANSI 標(biāo)準(zhǔn)
ANSI 標(biāo)準(zhǔn)是為了確保 C++ 的便攜性 —— 您所編寫的代碼在 Mac、UNIX、Windows、Alpha 計(jì)算機(jī)上都能通過編譯。
由于 ANSI 標(biāo)準(zhǔn)已穩(wěn)定使用了很長的時間,所有主要的 C++ 編譯器的制造商都支持 ANSI 標(biāo)準(zhǔn)。
四、學(xué)習(xí) C++
學(xué)習(xí) C++,關(guān)鍵是要理解概念,而不應(yīng)過于深究語言的技術(shù)細(xì)節(jié)。
學(xué)習(xí)程序設(shè)計(jì)語言的目的是為了成為一個更好的程序員,也就是說,是為了能更有效率地設(shè)計(jì)和實(shí)現(xiàn)新系統(tǒng),以及維護(hù)舊系統(tǒng)。
C++ 支持多種編程風(fēng)格。您可以使用 Fortran、C、Smalltalk 等任意一種語言的編程風(fēng)格來編寫代碼。每種風(fēng)格都能有效地保證運(yùn)行時間效率和空間效率。
五、C++ 的使用
C++ 語言在許多行業(yè)和領(lǐng)域都有廣泛應(yīng)用,包括:
游戲開發(fā):C++ 是游戲開發(fā)領(lǐng)域中最常用的編程語言之一,因?yàn)樗哂懈咝У男阅芎椭苯涌刂朴布哪芰?。許多主要的游戲引擎,如 Unreal Engine 和 Unity,都使用 C++ 編寫。
嵌入式系統(tǒng)開發(fā):C++ 可以在嵌入式系統(tǒng)中發(fā)揮重要作用,如智能手機(jī)、汽車、機(jī)器人和家電等領(lǐng)域。由于嵌入式系統(tǒng)通常具有嚴(yán)格的資源限制和實(shí)時要求,因此 C++ 的高效性能和內(nèi)存控制功能非常有用。
金融領(lǐng)域:C++ 在金融領(lǐng)域中被廣泛應(yīng)用,如高頻交易、算法交易和風(fēng)險管理等領(lǐng)域。由于這些應(yīng)用程序需要高效的性能和對硬件的直接控制,C++ 語言是一個合適的選擇。
圖形圖像處理:C++ 可以用于開發(fā)圖形和圖像處理應(yīng)用程序,如計(jì)算機(jī)視覺、計(jì)算機(jī)圖形學(xué)和人工智能領(lǐng)域。由于這些應(yīng)用程序需要高效的計(jì)算能力和對硬件的控制,因此 C++ 是一個很好的選擇。
科學(xué)計(jì)算和數(shù)值分析:C++ 可以用于開發(fā)科學(xué)計(jì)算和數(shù)值分析應(yīng)用程序,如數(shù)值模擬和高性能計(jì)算等領(lǐng)域。由于這些應(yīng)用程序需要高效的計(jì)算能力和對硬件的直接控制,C++ 語言是一個很好的選擇。
六、標(biāo)準(zhǔn)化
發(fā)布時間通稱備注2020C++20, C++2aISO/IEC 14882:20202017C++17第五個C++標(biāo)準(zhǔn)2017coroutines TS協(xié)程庫擴(kuò)展2017ranges TS提供范圍機(jī)制2017library fundamentals TS標(biāo)準(zhǔn)庫擴(kuò)展2016concurrency TS用于并發(fā)計(jì)算的擴(kuò)展2015concepts TS概念庫,用于優(yōu)化編譯期信息2015TM TS事務(wù)性內(nèi)存操作2015parallelism TS用于并行計(jì)算的擴(kuò)展2015filesystem TS文件系統(tǒng)2014C++14第四個C++標(biāo)準(zhǔn)2011-十進(jìn)制浮點(diǎn)數(shù)擴(kuò)展2011C++11第三個C++標(biāo)準(zhǔn)2010-數(shù)學(xué)函數(shù)擴(kuò)展2007C++TR1C++技術(shù)報(bào)告:庫擴(kuò)展2006-C++性能技術(shù)報(bào)告2003C++03第二個C++標(biāo)準(zhǔn)1998C++98第一個C++標(biāo)準(zhǔn)