《C++面向對象程序設計》第四版的主要變化包括對統(tǒng)一建模語言(UML)的初步介紹,第13章增加的文件間通信部分,以及第16章介紹的用于改進軟件開發(fā)的方法。開始介紹UML時,只要符合文章主題就應盡量使用UML圖例,所以全書中有很多新的UML圖例。文件間通信部分集中了先前分散在全書的很多概念。自本書上一個版本以來,業(yè)界關于面向對象分析和設計的方法已有了不少發(fā)展,因此本書對與這個主題有關的章節(jié)做了修改,從而反映這些最新的進展。從上一個版本以來,C++本身只有很少改變。雖然如此,除了已提及到的修訂部分,還做了很多小的變動,以便更清楚地闡明已存在的主題,另外還改正了不少印刷錯誤,對原文中不準確的地方也做了修正。這本書將講解如何使用C++程序設計語言來編寫程序.然而,它做得比這更多.在過去的幾年內,軟件開發(fā)領域出現(xiàn)了一些重大的革新.本書將根據(jù)這些最新的發(fā)展來教授C++.現(xiàn)在就來看看它們都是什么吧!程序設計變革在20多年以前,程序員在接到一個項目后可以立即坐下來編代碼.然而,隨著程序設計項目變得越來越大和越來越復雜,這種方法就不怎么有效了.問題的根源就是復雜性.大型程序是人類所創(chuàng)建過的最復雜的實體.由于它的復雜性,程序很容易出錯,軟件錯誤往往代價高昂,有時甚至威脅到生命安全(如空中交通控制系統(tǒng)).為解決軟件的復雜性問題,程序設計領域出現(xiàn)了三個主要的變革,它們是:面向對象程序設計(Object-OrientedProgramming,OOP)統(tǒng)一建模語言(UnifiedModelingLanguage,UML)改良的軟件開發(fā)過程本書將用這三個變革的思想來講授C++語言.在此,你不僅會學到一門計算機語言,還會學到很多有關軟件開發(fā)的新方法.面向對象程序設計為什么面向對象程序設計成為大多數(shù)軟件項目的首選方法?OOP提供了一種全新的強大方法來處理復雜性.相對于將程序看成一系列可執(zhí)行的步驟,新的方法將程序看成是一組具有特定屬性和執(zhí)行特定操作的對象.在進一步學習該方法之前,它聽起來有些晦澀,但它確實能夠讓程序更清晰.更可靠和更容易維護.本書的一個主要目的就是講授面向對象程序設計,因此將盡可能早地介紹它,并且盡可能覆蓋它的所有主要特性.本書的大多數(shù)示例程序都是面向對象的.統(tǒng)一建模語言統(tǒng)一建模語言(UML)是一門由多種圖例組成的圖形語言.它能夠幫助程序分析員弄清程序應該做什么,同時幫助程序員設計和理解程序的工作過程.UML是一種能使程序設計更為簡單和有效的強大工具.在第1章中對UML做了一個概述,指出本書中將討論的UML的具體特性.在有助于闡明所討論的OOP話題的地方,都介紹了相關的UML特性,這種方法使得在學習UML的同時也有助于學習C++.語言和開發(fā)平臺在面向對象程序設計語言中,C++是到目前為止使用最為廣泛的語言.最近才加入OO語言一族的Java由于缺少某些特性,如指針.模板和多重繼承等,其功能沒有C++多,也不如C++強大(如果你想學習Java,C++的學習將是一個起點.因為Java語法和C++很相似).最近還出現(xiàn)了其他幾種OO語言,比如C#,但它們還沒有像C++一樣被廣泛接受.直到最近,C++標準還處在不斷變革中,這意味著每一個編譯器廠商在處理某些細節(jié)時都會有所不同.然而,在1997年11月,ANSI/ISOC++標準委員會批準了最后一個C++草案,這就是眾所周知的?曜糃++(ANSI是指美國國家標準化學會,ISO是指國際標準化組織).標準C++增加了許多新的特性,如標準模板庫(StandardTemplateLibrary,STL).本書以標準C++為主(少數(shù)地方除外,會在學習中標明).最流行的C++開發(fā)環(huán)境由Microsoft和Borland提供,它們運行在各種MicrosoftWindows平臺上.我們盡量保證本書所有的示例程序都可以運行在Borland和Microsoft編譯器的當前版本下(參見附錄C“MicrosoftVisualC++”和附錄D“BorlandC++Builder”中更多關于編譯器的內容).關于本書本書使用C++程序設計語言來講授面向對象程序設計,具體的編譯器可以是Microsoft的,也可以是Borland的.此外,本書還介紹了UML和軟件開發(fā)過??.本書適合于專業(yè)程序員.學生和程序愛好者.新概念對于傳統(tǒng)語言(如Pascal.Basic和C)程序員來說,OOP涉及的概念是很新的.類.繼承和多態(tài)性等思想是OOP的核心概念,但是在討論面向對象語言的細節(jié)時,很容易忘掉這些概念.許多書籍都過多地讓讀者關注語言特性的細節(jié),而忽略掉了這些特性存在的緣由.而本書著眼于全局,將具體的細節(jié)和宏觀的概念相聯(lián)系.漸進式方法本書采用了漸進式的學習方法,從最簡單的程序設計示例開始,到最后完整的面向對象應用程序.我們盡量以適當?shù)乃俣冉榻B新概念,以便于讀者有足夠的時間在下一次學習之前消化掉這些思想.我們也盡可能地使用圖表來闡明新思想.在每一章的結尾都提供了思考題和程序設計練習題以適合于課堂教學.附錄G附有思考題和小部分(帶星號)練習題的解答,不同難度的練習題可以給學生以不同的挑戰(zhàn)