本書以VisualC++ 2012作為主要開發(fā)平臺,在C語言的基礎上,緊密結合C++的標準,從C語言過渡到C++語言,涵蓋了C++語言的主要特征,使初學者能夠很快掌握C++.本書語言通俗,層次清晰,理論與實例結合,力求做到深入淺出,將復雜的概念用簡潔淺顯的語言來講述,使讀者盡快邁入面向對象程序設計的大門,迅速掌握C++程序設計的基本技能和面向對象的概念和方法,并能編寫出具有良好風格的程序.
本書共11章,第1章面向對象程序設計概述,第2章C++入門,第3章類和對象Ⅰ,第4章類和對象Ⅱ,第5章組合和繼承,第6章多態(tài)與虛函數(shù),第7章運算符重載,第8章模板和命名空間,第9章輸入輸出流,第10章異常處理,第11章Windows程序開發(fā)概述和MFC庫.本書所有例題均在VC++ 2012下調試通過.為了與C++國際標準相一致,使用標準C++的頭文件,系統(tǒng)頭文件不帶后綴“.h”,使用系統(tǒng)庫時用命名空間std.
本書以VisualC++ 2012作為主要開發(fā)平臺,在C語言的基礎上,緊密結合C++的標準,從C語言過渡到C++語言,涵蓋了C++語言的主要特征,使初學者能夠很快掌握C++.本書語言通俗,層次清晰,理論與實例結合,力求做到深入淺出,將復雜的概念用簡潔淺顯的語言來講述,使讀者盡快邁入面向對象程序設計的大門,迅速掌握C++程序設計的基本技能和面向對象的概念和方法,并能編寫出具有良好風格的程序.
本書共11章,第1章面向對象程序設計概述,第2章C++入門,第3章類和對象Ⅰ,第4章類和對象Ⅱ,第5章組合和繼承,第6章多態(tài)與虛函數(shù),第7章運算符重載,第8章模板和命名空間,第9章輸入輸出流,第10章異常處理,第11章Windows程序開發(fā)概述和MFC庫.本書所有例題均在VC++ 2012下調試通過.為了與C++國際標準相一致,使用標準C++的頭文件,系統(tǒng)頭文件不帶后綴“.h”,使用系統(tǒng)庫時用命名空間std.
面向對象程序設計是目前大型程序設計的主流方法,其具有封裝、繼承、多態(tài)等特點,使設計者可以方便地將現(xiàn)實世界的對象抽象封裝在一起,并通過它所提供的接口來實現(xiàn)對象之間的交互,保證了對象的穩(wěn)定和安全特性.為了zui大限度地實現(xiàn)代碼復用,在面向對象程序設計中又提供了繼承方法,它允許子類繼承父類的所有屬性和方法,并可以靈活地在子類中對從父類繼承來的屬性和方法進行擴充和修改,實現(xiàn)子類的特例化;為了實現(xiàn)處理方法的名同意不同(函數(shù)名相同,具體處理的參數(shù)數(shù)據(jù)類型及個數(shù)及處理過程可能不相同),在面向對象程序設計中,又提供了多態(tài)性處理方法,允許對函數(shù)和運算符重載(靜態(tài)多態(tài)),并提出了虛函數(shù)的概念,實現(xiàn)動態(tài)綁定,增強了程序處理的靈活性.面向對象程序設計方法,對降低軟件的復雜性,改善其重用性和維護性,提高軟件的生產(chǎn)效率,有著十分重要的意義。
C++語言是在C語言的基礎上,擴充了面向對象機制形成的一種面向對象程序設計語言.對于具有C 語言基礎的人來說,學習C++會比較容易.C++全面兼容了C語言,繼承了C語言的全部優(yōu)點和功能.因為C語言廣泛流行,所以有面向對象機制的C++語言的出現(xiàn)大大促進了面向對象程序設計方法的發(fā)展。
由于作者水平有限,時間倉促,難免有疏漏和錯誤之處,敬請各位專家和讀者批評指正.
編 者
2017年3月
第1章 面向對象程序設計概述 ……………………………………………………… (1)
。保薄∶嫦驅ο蟪绦蛟O計的發(fā)展歷史 …………………………………………… (1)
。保病〗Y構化程序設計概述 ……………………………………………………… (2)
1.3 面向對象程序設計概述 …………………………………………………… (3)
。保础∶嫦驅ο笙鄬γ嫦蜻^程的優(yōu)缺點 ………………………………………… (10)
1.5 其他面向對象程序設計語言 ……………………………………………… (11)
1.6 關于C++上機實踐 ………………………………………………………… (11)
習題 …………………………………………………………………………………… (18)
第2章 C++入門……………………………………………………………………… (19)
。玻薄++的發(fā)展和特點 ………………………………………………………… (19)
。玻病∫粋簡單的C++程序 ……………………………………………………… (20)
。玻场(shù)據(jù)類型 …………………………………………………………………… (22)
。玻础∫(&)……………………………………………………………………… (24)
。玻怠〕A縞onst ………………………………………………………………… (28)
2.6 內(nèi)聯(lián)函數(shù) …………………………………………………………………… (31)
2.7 函數(shù)的重載 ………………………………………………………………… (32)
。玻浮в心J參數(shù)的函數(shù) ……………………………………………………… (35)
。玻埂∽饔糜蜻\算符::……………………………………………………………… (36)
2.10 強制類型轉換 …………………………………………………………… (37)
。玻保薄ew和delete …………………………………………………………… (37)
2.12 一個面向對象的C++程序 ……………………………………………… (40)
習題 ……………………………………………………………………………………(41)
第3章 類和對象Ⅰ …………………………………………………………………… (45)
3.1 類的定義 …………………………………………………………………… (45)
。常病ο蟮亩x與使用 ………………………………………………………… (48)
。常场嬙旌瘮(shù)與析構函數(shù) ……………………………………………………… (51)
3.4 對象的賦值與復制 ………………………………………………………… (61)
。常怠∽砸弥羔榯his……………………………………………………………… (66)
3.6 應用舉例 …………………………………………………………………… (69)
習題 …………………………………………………………………………………… (72)
第4章 類和對象Ⅱ …………………………………………………………………… (78)
4.1 對象數(shù)組與對象指針 ……………………………………………………… (78)
。矗病∠蚝瘮(shù)傳遞對象 …………………………………………………………… (83)
。矗场tatic與類 ………………………………………………………………… (85)
。矗础onst與類 …………………………………………………………………… (94)
4.5 友元 ………………………………………………………………………… (97)
。矗丁++的多文件程序……………………………………………………… (102)
4.7 應用舉例 ………………………………………………………………… (104)
習題 ………………………………………………………………………………… (109)
第5章 組合和繼承 ………………………………………………………………… (114)
。担薄☆惖慕M合 ………………………………………………………………… (114)
。担病±^承的概念 ……………………………………………………………… (117)
5.3 繼承與組合 ……………………………………………………………… (119)
。担础∨缮惖睦^承方式 ……………………………………………………… (120)
。担怠∨缮惖臉嬙旌臀鰳 …………………………………………………… (124)
5.6 派生類重載基類函數(shù)的訪問 …………………………………………… (128)
。担贰《嗬^承 …………………………………………………………………… (130)
5.8 虛基類 …………………………………………………………………… (133)
。担埂门e例 ………………………………………………………………… (139)
習題 ………………………………………………………………………………… (141)
第6章 多態(tài)與虛函數(shù) ……………………………………………………………… (147)
。叮薄《鄳B(tài)性概述 ……………………………………………………………… (147)
。叮病』惻c派生類對象之間的賦值兼容規(guī)則 ……………………………… (148)
6.3 虛函數(shù) …………………………………………………………………… (152)
。叮础〖兲摵瘮(shù)與抽象類 ……………………………………………………… (157)
。叮怠门e例 ………………………………………………………………… (159)
習題 ………………………………………………………………………………… (161)
第7章 運算符重載 ………………………………………………………………… (165)
7.1 運算符重載的基本概念 ………………………………………………… (165)
。罚病〕蓡T函數(shù)重載運算符 …………………………………………………… (166)
。罚场∮言瘮(shù)重載運算符 …………………………………………………… (177)
7.4 成員函數(shù)重載運算符與友元函數(shù)重載運算符比較 …………………… (180)
。罚怠☆愋娃D換 ………………………………………………………………… (183)
。罚丁门e例 ………………………………………………………………… (190)
習題 ………………………………………………………………………………… (194)
第8章 模板和命名空間 …………………………………………………………… (197)
8.1 模板的概念 ……………………………………………………………… (197)
。福病『瘮(shù)模板 ………………………………………………………………… (197)
。福场☆惸0 …………………………………………………………………… (201)
。福础∶臻g和頭文件命名規(guī)則 …………………………………………… (204)
8.5 應用舉例 ………………………………………………………………… (207)
習題 ………………………………………………………………………………… (211)
第9章 輸入輸出流 ………………………………………………………………… (215)
。梗薄++的流………………………………………………………………… (215)
。梗病≥斎胼敵隽 ……………………………………………………………… (218)
9.3 文件的輸入輸出 ………………………………………………………… (235)
。梗础门e例 ………………………………………………………………… (243)
習題 ………………………………………………………………………………… (245)
第10章 異常處理 ………………………………………………………………… (247)
。保埃薄‘惓L幚砀攀 ………………………………………………………… (247)
。保埃病‘惓L幚淼姆椒 ……………………………………………………… (248)
。保埃场‘惓Fヅ ……………………………………………………………… (254)
。保埃础藴十惓<皩哟谓Y構 ………………………………………………… (255)
。保埃怠门e例 ……………………………………………………………… (255)
習題 ………………………………………………………………………………… (256)
第11章 Windows程序開發(fā)概述和 MFC…………………………………………… (258)
11.1 C++的 Windows編程………………………………………………… (258)
。保保病FC應用程序 …………………………………………………………… (265)
11.3 MFC的類層次結構 ……………………………………………………… (270)
。保保础FC類功能簡介 ………………………………………………………… (272)
習題 ………………………………………………………………………………… (275)
參考文獻 ……………………………………………………………………………… (276)