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