怎么打開已編輯好的超鏈接(Excel編輯超鏈接)
756
2022-05-29
歡迎進入C++世界!這是一種令人興奮的語言,它在C語言的基礎上添加了對面向對象編程和泛型編程的支持,在20世紀90年代便是最重要的編程語言之一,并在21世紀仍保持強勁勢頭。C++繼承了C語言高效、簡潔、快速和可移植性的傳統。C++面向對象的特性帶來了全新的編程方法,這種方法是為應付復雜程度不斷提高的現代編程任務而設計的。C++的模板特性提供了另一種全新的編程方法——泛型編程。這三件法寶既是福也是禍,一方面讓C++語言功能強大,另一方面則意味著有更多的東西需要學習。
1. C++簡介
C++融合了3種不同的編程方式:C語言代表的過程性語言、C++在C語言基礎上添加的類代表的面向對象語言、C++模板支持的泛型編程。本章將簡要介紹這些傳統。不過首先,我們來看看這種傳統對于學習C++來說意味著什么。使用C++的原因之一是為了利用其面向對象的特性。要利用這種特性,必須對標準C語言知識有較深入的了解,因為它提供了基本類型、運算符、控制結構和語法規則。所以,如果已經對C有所了解,便可以學習C++了,但這并不僅僅是學習更多的關鍵字和結構,從C過渡到C++的學習量就像從頭學習C語言一樣大。另外,如果先掌握了C語言,則在過渡到C++時,必須擯棄一些編程習慣。如果不了解C語言,則學習C++時需要掌握C語言的知識、OOP知識以及泛型編程知識,但無需擯棄任何編程習慣。如果您認為學習C++可能需要擴展思維,這就對了。本書將以清晰的、幫助的方式,引導讀者一步一個腳印地學習,因此擴展思維的過程是溫和的,不至于讓您的大腦接受不了。
2. C++簡史
在過去的幾十年,計算機技術以令人驚訝的速度發展著,當前,筆記本電腦的計算速度和存儲信息的能力超過了20世紀60年代的大型機。很多程序員可能還記得,將數疊穿孔卡片提交給充斥整個房間的大型計算機系統的時代,而這種系統只有100KB的內存,比當今智能手機的內存都少得多。計算機語言也得到了發展,盡管變化可能不是天翻地覆的,但也是非常重要的。體積更大、功能更強的計算機引出了更大、更復雜的程序,而這些程序在程序管理和維護方面帶來了新的問題。
在20世紀70年代,C和Pascal這樣的語言引領人們進入了結構化編程時代,這種機制把秩序和規程帶進了迫切需要這種性質的領域中。除了提供結構化編程工具外,C還能生成簡潔、快速運行的程序,并提供了處理硬件問題的能力,如管理通信端口和磁盤驅動器。這些因素使C語言成為20世紀80年代占統治地位的編程語言。同時,20世紀80年代,人們也見證了一種新編程模式的成長:面向對象編程(OOP)。
與C語言一樣,C++也是在貝爾實驗室誕生的,Bjarne Stroustrup于20世紀80年代在這里開發出了這種語言。用他自己的話來說,“C++主要是為了我的朋友和我不必再使用匯編語言、C語言或其他現代高級語言來編程而設計的。它的主要功能是可以更方便地編寫出好程序,讓每個程序員更加快樂”。
Bjarne Stroustrup的主頁
http://www.research.att.com/-bs/
該網站包括了C++語言有趣的發展歷史、Bjarne的傳記材料和C++ FAQ。Bjarne被問得最多的問題是:Bjarne Stroustrup應該如何讀。您可以訪問Stroustrup的網站,閱讀FAQ部分并下載.WAV文件,親自聽一聽。
Stroustrup比較關心的是讓C++更有用,而不是實施特定的編程原理或風格。在確定C++語言特性方面,真正的編程需要比純粹的原理更重要。Stroupstrup之所以在C的基礎上創建C++,是因為C語言簡潔、適合系統編程、使用廣泛且與UNIX操作系統聯系緊密。C++的OOP方面是受到了計算機模擬語言Simula67的啟發。Stroustrup加入了OOP特性和對C的泛型編程支持,但并沒有對C的組件作很大的改動。因此,C++是C語言的超集,這意味著任何有效的C程序都是有效的C++程序。它們之間有些細微的差異,但無足輕重。C++程序可以使用已有的C軟件庫。庫是編程模塊的集合,可以從程序中調用它們。庫對很多常見的編程問題提供了可靠的解決方法,因此能節省程序員大量的時間和工作量。這也有助于C++的廣泛傳播。
名稱C++來自C語言中的遞增運算符++,該運算符將變量加1。名稱C++表明,它是C的擴充版本。
計算機程序將實際問題轉換為計算機能夠執行的一系列操作。OOP部分賦予了C++語言將問題所涉及的概念聯系起來的能力,C部分則賦予了C++語言緊密聯系硬件的能力(參見圖1.2),這種能力上的結合成就了C++的廣泛傳播。從程序的一個方面轉到另一個方面時,思維方式也要跟著轉換(確實,有些OOP正統派把為C添加OOP特性看作是為豬插上翅膀,雖然這是頭瘦骨嶙峋、非常能干的豬)。另外,C++是在C語言的基礎上添加OOP特性,您可以忽略C++的面向對象特性,但將錯過很多有用的東西。
在C++獲得一定程度的成功后,Stroustrup才添加了模板,這使得進行泛型編程成為可能。在模板特性被使用和改進后,人們才逐漸認識到,它們和OOP同樣重要——甚至比OOP還重要,但有些人不這么認為。C++融合了OOP、泛型編程和傳統的過程性方法,這表明C++強調的是實用價值,而不是意識形態方法,這也是該語言獲得成功的原因之一。
圖1
Stroustrup編寫的《The Programming Language》包含65頁的參考手冊,它成了最初的C++事實標準。
下一個事實標準是Ellis和Stroustrup編寫的《The Annotated C++ Reference Manual》。
C++98標準新增了大量特性,其篇幅將近800頁,且包含的說明很少。
C++11標準的篇幅長達1350頁,對舊標準做了大量的補充。
隨著計算機的功能越來越強大,計算機程序越來越龐大而復雜。為應對這種挑戰,計算機語言也得到了改進,以便編程過程更為簡單。C語言新增了諸如控制結構和函數等特性,以便更好地控制程序流程,支持結構化和模塊化程度更高的方法;而C++增加了對面向對象編程和泛型編程的支持,這有助于提高模塊化和創建可重用代碼,從而節省編程時間并提高程序的可靠性。
C++的流行導致大量用于各種計算平臺的C++實現得以面世;而ISOC++標準(C++98/03和C++11)為確保眾多實現的相互兼容提供了基礎。這些標準規定了語言必須具備的特性、語言呈現出的行為、標準庫函數、類和模板,旨在實現該語言在不同計算平臺和實現之間的可移植性。
要創建C++程序,可創建一個或多個源代碼文件,其中包含了以C++語言表示的程序。這些文件是文本文件,它們經過編譯和鏈接后將得到機器語言文件,后者構成了可執行的程序。上述任務通常是在IDE中完成的,IDE提供了用于創建源代碼文件的文本編輯器、用于生成可執行文件的編譯器和鏈接器以及其他資源,如項目管理和調試功能。然而,這些任務也可以在命令行環境中通過調用合適的工具來完成。
本文節選自《C++ Primer Plus(第6版)中文版》
內容簡介
C++是在 C 語言基礎上開發的一種集面向對象編程、泛型編程和過程化編程于一體的編程語言,是C語言的超集。本書是根據2003年的ISO/ANSI C++標準編寫的,通過大量短小精悍的程序詳細而全面地闡述了 C++的基本概念和技術,并專辟一章介紹了C++11新增的功能。
全書分18章和10個附錄。分別介紹了C++程序的運行方式、基本數據類型、復合數據類型、循環和關系表達式、分支語句和邏輯運算符、函數重載和函數模板、內存模型和名稱空間、類的設計和使用、多態、虛函數、動態內存分配、繼承、代碼重用、友元、異常處理技術、string類和標準模板庫、輸入/輸出、C++11新增功能等內容。
本書針對C++初學者,書中從C語言基礎知識開始介紹,然后在此基礎上詳細闡述C++新增的特性,因此不要求讀者有C語言方面的背景知識。本書可作為高等院校教授C++課程的教材,也可供初學者自學C++時使用。
本文轉載自異步社區
軟件開發 編程語言 c++
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。