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