作為最流行的面向對象程序設計語言之一,C++既支持過程化程序設計,也支持面向對象程序設計。從操作系統(tǒng)、設備控制到數(shù)據(jù)庫、網(wǎng)絡、數(shù)字媒體等眾多的系統(tǒng)軟件和應用軟件開發(fā)領域都能看到它的身影。
為了幫助讀者更好地學習C++程序設計,本書作者結合多年的C++教學實踐和軟件開發(fā)經(jīng)驗,從零基礎入手,全面、系統(tǒng)地介紹了C++語言的相關知識,并輔以大量的程序實例。
全書共13章,分別介紹了C++基礎、基本數(shù)據(jù)類型與運算符、程序控制、函數(shù)、數(shù)組、指針與引用、自定義數(shù)據(jù)類型、類、運算符重載、繼承與派生、虛函數(shù)與多態(tài)性、C++輸入/輸出流。本書具有如下特色:
。1)詳略得當,主次分明
C++中包含的內(nèi)容較多,由于篇幅所限不可能面面俱到,必須有所取舍。書中對于非重點或較復雜的內(nèi)容略講,如數(shù)組部分重點是一維和二維數(shù)組,三維以上數(shù)組只介紹概念。另外,對一些選講的內(nèi)容以“*”標注。
。2)講解由淺入深,循序漸進
本書的編排采用循序漸進的方式,內(nèi)容梯度從易到難,講解由淺入深,適合各個層次的讀者學習。
。3)寫作細致,以讀者為出發(fā)點
本書內(nèi)容編排、概念表述、語法講解、實例展示,以及源代碼注釋等都很細致,力圖將問題講解得清楚,盡量為讀者掃清學習中的障礙。
。4)貫穿大量的典型實例和開發(fā)技巧
本書精選重點,強化主要概念,在講解知識點時貫穿了大量的典型實例和開發(fā)技巧,以例題釋含義,力求讓讀者獲得真正實用的知識。
(5)配套資源豐富
為方便教學和自學,本書配套有《C++程序設計習題與上機指導》,以及教學PPT、例題源代碼等,力求幫助讀者通過具體實踐掌握C++的編程方法。
本書閱讀建議:
。1)建議沒有基礎的讀者,從前向后順次閱讀,盡量不要跳躍。
。2)書中的實例和習題要親自上機動手實踐,學習效果更好。
。3)課后習題不僅要給出代碼,最好能上機調(diào)試運行,以加強和鞏固對知識點的理解和掌握。
本書由劉厚泉提出編寫計劃和結構安排,其中劉厚泉編寫第1—2章,李政偉編寫第3~4、7章,葛欣編寫第5~6章、席景科編寫第10~11章、薛猛編寫第8~9章、徐東紅編寫第12~13章,最后由李政偉統(tǒng)稿。
本書的編寫參考了大量的同類書籍。在此,我們向有關的作譯者表示衷心的感謝。
由于C++程序設計涉及的內(nèi)容非常豐富,限于編者水平有限,書中個別地方難免有疏漏,敬請讀者批評指正。
編者
1.1.1程序設計語言是人機交互的重要介質(zhì)
人們在使用計算機解決復雜問題時,需要通過程序表達意圖和步驟,這通常包含兩個階段,第一個階段是對問題進行分析和描述,明確做什么和怎么做;第二個階段是使用程序設計語言編寫程序,將解決問題的方法和步驟交由計算機執(zhí)行。學好程序設計也包含兩方面的內(nèi)容,一方面要熟練掌握程序設計語言的使用方法,另一方面也要學會用計算機思維來分析和表達現(xiàn)實世界的問題。
1.1.2程序設計語言的發(fā)展概況
計算機程序設計語言的發(fā)展,經(jīng)歷了從機器語言、匯編語言到高級語言的歷程。
。1)機器語言
機器語言是第一代計算機語言。機器語言程序由一串串使用“O”和“l(fā)”編碼的指令序列構成,計算機硬件可以直接理解這種二進制形式表示的指令,并完成相應的操作。機器語言依賴于特定型號的計算機硬件,具有很高的運行效率。雖然對機器來說理解和執(zhí)行這種語言都十分簡單,但是對程序員來說程序的編寫、閱讀和修改都很困難,而且由于每臺計算機的指令系統(tǒng)各不相同,在一臺計算機上執(zhí)行的程序很難移植到另一臺計算機上執(zhí)行,因此加重了程序設計者的負擔。
。2)匯編語言
匯編語言是第二代計算機語言。為了減輕使用機器語言編程的不便,人們嘗試用一些簡潔的英文符號來替代指令中特定的二進制串,比如用“ADD”表示加法,用“MOV”表示數(shù)據(jù)傳遞等。這種用英文和數(shù)字符號組成的語言稱為匯編語言。與機器語言相比,匯編語言程序易于閱讀和理解,方便了程序的編寫和維護。計算機并不能直接理解匯編語言的指令,在程序運行之前,需要通過專門的程序將其翻譯成二進制形式的機器語言程序,再交由機器執(zhí)行。匯編語言也同樣十分依賴于機器硬件,雖然移植性不好,但是程序精煉而質(zhì)量高,所以至今仍在使用。
……