《visual_c--.net程序設(shè)計(jì)教程與上機(jī)指導(dǎo)》課件_第1頁(yè)
已閱讀1頁(yè),還剩340頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、《Visual_C++.NET程序設(shè)計(jì)教程與上機(jī)指導(dǎo)》課件,第1章 概 述,教學(xué)提示:微軟推出 .NET是為了適應(yīng)Internet的發(fā)展而作出的應(yīng)對(duì)決策,其中Visual C++ .NET是微軟的Visual C++系列軟件的升級(jí)版本,用它來開發(fā)本機(jī)應(yīng)用程序或Internet Web程序都有顯著的增強(qiáng)。本章主要介紹Visual C++ .NET的開發(fā)界面及可以開發(fā)的常用程序類型。,教學(xué)目標(biāo):初步介紹Visual C++ .NET

2、開發(fā)界面,使初學(xué)者對(duì)Visual C++ .NET的開發(fā)環(huán)境有一個(gè)整體的認(rèn)識(shí)。本書用的軟件版本為Visual Studio .NET 2003中文版,如果機(jī)器上裝的不是這個(gè)版本,可能界面上有些差異,但是這些差異非常小,只要稍微注意一下,基本上不會(huì)妨礙學(xué)習(xí)。如果還是不太放心的話,請(qǐng)按第1章的步驟安裝此版本軟件,這樣就可以省去一些麻煩。,1.1 Visual C++ .NET簡(jiǎn)介,微軟于2000年6月22日向全球發(fā)布了 .NET,引起全球

3、的轟動(dòng), .NET使程序員的編程方式產(chǎn)生了很大的變化。 .NET平臺(tái)在以Internet為基礎(chǔ)的計(jì)算和通信激增的背景下,通過先進(jìn)的軟件技術(shù),利用網(wǎng)絡(luò)協(xié)議和格式協(xié)調(diào)眾多的智能設(shè)備與網(wǎng)站,從而提供更簡(jiǎn)單、更為個(gè)性化且更有效的Internet服務(wù)。 微軟為了配合其 .NET戰(zhàn)略,發(fā)布了Visual Studio .NET。 Visual Studio .NET主要包括三套產(chǎn)品:Visual C# .N

4、ET、Viusal Basic .NET和Visual C++ .NET。,1.2 安裝Visual C++ .NET,Visual C++ .NET是Visual Studio .NET的一部分,表 1.1 以安裝Visual Studio .NET 2003 為例,列出了安裝系統(tǒng)需求。 滿足上述要求的計(jì)算機(jī)可以進(jìn)行安裝了 。 Visual Studio . NET 2003共有6張安裝光盤,包括2張Visual

5、 Studio .NET安裝光盤,1張系統(tǒng)必備盤,3張MSDN安裝盤。將Visual Studio .NET的第一張安裝光盤放入光驅(qū),即出現(xiàn)如圖1.1所示的畫面。 然后,讀者可以按照安裝程序的步驟,首先安裝系統(tǒng)必備,系統(tǒng)必備包括一些開發(fā) .NET程序必需的Internet組件和 .NET 應(yīng)用程序框架。安裝完系統(tǒng)必備后,按照提示一步步安裝Visual Studio .NET,由于過程比較簡(jiǎn)單,在此就不贅述了 。前兩步

6、安裝完成后 ,最好安裝MSDN產(chǎn)品文檔,因?yàn)镸SDN中包含多達(dá)1.9GB的文檔和例子,而且可以很方便地查詢。,表1.1 安裝Visual Studio .NET 2003的系統(tǒng)要求,返回,,圖1.1 Visual Studio .NET安裝程序,返回,1.3 Visual C++ .NET開發(fā)界面簡(jiǎn)介,單擊Windows的【開始】|【程序】| Microsoft Visual Studio .NET 2003命令,Microsof

7、t Visual Studio .NET 2003 即可以啟動(dòng) 。其啟動(dòng)的初始界面如圖1.2所示。,,圖1.2 Visual Studio .NET的起始頁(yè),下面來新建一個(gè)Visual C++ .NET項(xiàng)目,以便于更詳細(xì)地了解Visual C++ .NET程序開發(fā)環(huán)境。按照以下步驟,一步步進(jìn)行: 首先單擊如圖1.2中的選項(xiàng)【項(xiàng)目】,再單擊【新建項(xiàng)目】按鈕,出現(xiàn)【新建項(xiàng)目】對(duì)話框,選擇左邊【項(xiàng)目類型】|【Visual C

8、++項(xiàng)目】| MFC選項(xiàng),在右邊的【模板】框中單擊【MFC應(yīng)用程序】,再在【名稱】文本框中輸入項(xiàng)目名稱Jiao1_1,如圖1.3所示。,,圖1.3 【新建項(xiàng)目】對(duì)話框,返回,單擊【確定】按鈕,即可進(jìn)入如圖1.4所示的【MFC應(yīng)用程序向?qū)А繉?duì)話框。在這里共有7個(gè)步驟供選擇,由于后面會(huì)詳細(xì)講解向?qū)У膭?chuàng)建步驟,所以現(xiàn)在都用默認(rèn)值,直接單擊【完成】按鈕即可創(chuàng)建一個(gè)多文檔應(yīng)用程序項(xiàng)目。,,圖1.4 【MFC應(yīng)用程序向?qū)А繉?duì)話框,返回,可以在【解決

9、方案資源管理器】視圖中點(diǎn)開所生成的項(xiàng)目,即可看到本項(xiàng)目所包含的文件(如果找不到,可以單擊菜單【視圖】|【解決方案資源管理器】即可出現(xiàn))。可以雙擊文件Jiao1_1.cpp,在中央的編輯器界面中進(jìn)行代碼的編寫。其界面如圖1.5所示。,,圖1.5 Visual C++ .NET的界面,返回,Visual C++ .NET 的集成界面包括菜單欄、工具欄、解決方案資源管理器、類視圖、資源視圖、動(dòng)態(tài)幫助、屬性窗口、輸出窗口,下面將進(jìn)行詳細(xì)介紹

10、。 1.3.1 菜單欄 1.3.2 工具欄 1.3.3 解決方案資源管理器 1.3.4 類視圖 1.3.5 資源視圖 1.3.6 動(dòng)態(tài)幫助 1.3.7 屬性窗口 1.3.8 任務(wù)列表及輸出等窗口,1.3.1 菜單欄,Visual C++ .NET的主菜單欄包括9個(gè)菜單項(xiàng),這些菜

11、單項(xiàng)可以完成幾乎所有的任務(wù),因此了解并掌握這些菜單命令是必要的。請(qǐng)注意,Visual C++ .NET的菜單會(huì)根據(jù)當(dāng)前打開不同的對(duì)象而有一些變化,所以本節(jié)只講常見的菜單項(xiàng)命令。,返回,1.3.2 工具欄,由于工具欄上面的按鈕命令都可以在相應(yīng)的菜單中找到 ,所以不詳細(xì)講解了??梢钥纯磮D標(biāo)就知道它是干什么的,還可以把鼠標(biāo)移動(dòng)到按鈕上面停一下,就有相應(yīng)的提示對(duì)話框解釋按鈕的功能,使用很方便。而且還可以自己打開或定制工具欄。在工具欄上面右擊,

12、在出現(xiàn)的彈出式菜單中單擊相應(yīng)的命令即可以顯示或隱藏相應(yīng)的工具欄 。圖1.15是標(biāo)準(zhǔn)工具欄的樣式 。從左到右的命令依次為:新建項(xiàng)目、添加項(xiàng)目、打開文件、保存、全部保存、剪切、復(fù)制、粘貼、撤消、重復(fù)、向后定位、向前定位、啟動(dòng)、解決方案配置、在文件中查找、查找、解決方案資源管理器、屬性窗口、對(duì)象瀏覽器、工具箱以及類視圖。,返回,,,圖1.15 標(biāo)準(zhǔn)工具欄,返回,1.3.3 解決方案資源管理器,如圖1.16 ,【解決方案資源管理器】窗口以圖

13、形方式顯示了組成項(xiàng)目的所有文件,Visual C++ .NET中屬于同一應(yīng)用程序的所有項(xiàng)目稱作解決方案。以前版本(如Visual C++ 6.0) 中同一應(yīng)用程序中的所有項(xiàng)目組成的一個(gè)整體叫作工程,它們的意思差不多,只是換了一個(gè)名字?!窘鉀Q方案資源管理器】窗口中顯示了每個(gè)解決方案中文件的樹狀查看列表,包括各個(gè)項(xiàng)目的引用、源文件、頭文件、資源文件、配置文件和幫助文件。雙擊相應(yīng)的選項(xiàng),Visual C++ .NET自動(dòng)用合適的編輯器打開它,

14、可以進(jìn)行任意的修改。如果要給解決方案添加一些項(xiàng)目,可在解決方案上面右擊,選擇彈出式菜單中相應(yīng)的選項(xiàng)可以添加所要的項(xiàng)目。如果該窗口已經(jīng)被關(guān)閉,則可以菜單命令【視圖】|【解決方案資源管理器】來打開。,返回,,,圖1.16 【解決方案資源管理器】窗口,返回,1.3.4 類視圖,Visual C++ .NET中的項(xiàng)目都是由類來組織的。見圖1.17【類視圖】窗口,解決方案Jiao1_1下面由【宏和常數(shù)】、【全局函數(shù)和變量】、CAboutDlg類

15、、CchildFrame(子框架窗口類)、CJiao1_1App(應(yīng)用程序類)、CJiao1_1DoC(文檔類)、CJiao1_1View(視圖類)、CmainFrame(框架窗口類)等組成(如果你看不懂,不要緊,這里只是稍微提一下,以后有詳細(xì)的說明)。,返回,,,圖1.17 【類視圖】窗口,返回,1.3.5 資源視圖,【資源視圖】窗口是程序員在Visual C++ .NET中管理資源的地方,它以樹形視圖的結(jié)構(gòu)把解決方案中的所有資源都

16、一項(xiàng)一項(xiàng)地列出來了,給人以非常直觀和清晰的感覺。,返回,1.3.6 動(dòng)態(tài)幫助,圖1.19所示為【動(dòng)態(tài)幫助】窗口,它提供了非常強(qiáng)大的智能幫助功能來幫助開發(fā)應(yīng)用程序,如果在編輯框中選中不清楚的類或者類的屬性或方法時(shí),幫助視圖中就提供選擇項(xiàng)的幫助提示功能,可以單擊相應(yīng)的提示項(xiàng)來詳細(xì)地了解該項(xiàng)的說明,使用非常貼心,是程序員編程的好幫手。還可以單擊示例和開始項(xiàng)下面的相應(yīng)項(xiàng)來學(xué)習(xí)有關(guān)知識(shí)。如果在Visual C++ .NET編程遇到困難時(shí),第一個(gè)

17、想到的幫助者就是Visual C++ .NET提供的動(dòng)態(tài)幫助功能,也可以打開MSDN 2003來提供幫助。,返回,,圖1.19 【動(dòng)態(tài)幫助】窗口,返回,1.3.7 屬性窗口,可以這么說,一個(gè)人開發(fā)Visual C++ .NET的速度和熟練程度,和他對(duì)【屬性】窗口的熟練使用程度是息息相關(guān)的。讀者可能用過Visual C++以前的版本,如Visual C++ 6.0中提供的ClassWizard對(duì)話框,對(duì)類的管理是非常方便的(包括資源控件

18、和類成員的對(duì)應(yīng)連接,數(shù)據(jù)傳遞路徑,消息處理等),可能對(duì)Visual C++ .NET中取消了ClassWizard功能感到非常失望,但是這只是個(gè)習(xí)慣問題,如果對(duì)【屬性】窗口熟悉以后,一定會(huì)為它提供的功能折服。眾所周知,Visual C++ .NET里面所有的項(xiàng)目都是有屬性的,通過使用【屬性】窗口可以非常方便地修改屬性。,返回,1.3.8 任務(wù)列表及輸出等窗口,圖1.21所示為任務(wù)列表及輸出等窗口。其中任務(wù)列表窗口可以瀏覽用戶任務(wù)、生成

19、錯(cuò)誤。可以在此窗口中單擊【單擊此處添加新任務(wù)】來添加新任務(wù),也可以在項(xiàng)目代碼中以特定的格式添加注釋。如果此窗口不可見,可單擊菜單【視圖】|【其他窗口】|【任務(wù)列表】來顯示。,圖1.21 任務(wù)列表及輸出等窗口,返回,1.4 利用Visual C++ .NET向?qū)蓱?yīng)用程序,Visual C++ .NET為用戶提供了功能強(qiáng)大的應(yīng)用程序生成向?qū)?,用戶可以不編寫一行代碼就能生成一個(gè)典型的Windows應(yīng)用程序框架。在1.3節(jié)涉及到了利用M

20、FC應(yīng)用程序向?qū)沙绦騄iao1_1,下面重點(diǎn)講解利用向?qū)蓱?yīng)用程序的具體過程,并生成一個(gè)可以編輯文字的MFC多文檔應(yīng)用程序Jiao1_2。 1.4.1 選擇新建項(xiàng)目類型 1.4.2 利用向?qū)Ы?yīng)用程序 1.4.3 生成應(yīng)用程序,,1.4.1 選擇新建項(xiàng)目類型,在起始頁(yè)上單擊【新建項(xiàng)目】按鈕,或者在菜單欄上選擇【文件】|【新建】|【項(xiàng)目】,就會(huì)彈出如圖1.3所示的【新建

21、項(xiàng)目】對(duì)話框,用戶可以對(duì)所要的項(xiàng)目類型進(jìn)行選擇??梢钥吹?,Visual C++ .NET開發(fā)的程序類型幾乎覆蓋了所有的開發(fā)類型,如Windows應(yīng)用程序、自定義類庫(kù)、控件庫(kù)、ASP.NET Web應(yīng)用程序、ASP.NET Web Service、Web控件庫(kù)、ATL Server Web 服務(wù)、控制臺(tái)應(yīng)用程序、Windows服務(wù)、空項(xiàng)目以及空Web項(xiàng)目等等。本書重點(diǎn)講解MFC應(yīng)用程序的開發(fā)。,返回,1. 應(yīng)用程序類型,在【MFC應(yīng)用程

22、序向?qū)А繉?duì)話框中,選擇左邊的【應(yīng)用程序類型】,在右邊的【應(yīng)用程序類型】選項(xiàng)組中選擇【多文檔】單選按鈕,其他選項(xiàng)用默認(rèn)值,如圖1.22所示。可以看到,利用MFC可以創(chuàng)建基于對(duì)話框的應(yīng)用程序、單文檔應(yīng)用程序、多文檔應(yīng)用程序和多頂級(jí)文檔應(yīng)用程序。,,圖1.22 選擇應(yīng)用程序類型,返回,2. 復(fù)合文檔支持,【復(fù)合文檔支持】是一個(gè)程序中能夠嵌入另一個(gè)應(yīng)用程序的功能,容器就是只能維護(hù)嵌入的對(duì)象;袖珍服務(wù)器指應(yīng)用程序不能獨(dú)立運(yùn)行,而是被調(diào)用使之為

23、其他程序服務(wù);完全服務(wù)器指能夠獨(dú)立運(yùn)行,并能為其他應(yīng)用程序提供服務(wù);容器/完全服務(wù)器指應(yīng)用程序既可以作容器,也可以作完全服務(wù)器對(duì)象。保持默認(rèn)值不變,即不選擇任何復(fù)合文檔支持具體見圖1.23。,,圖1.23 設(shè)置復(fù)合文檔支持,返回,3. 文檔模板字符串,選左邊的【文檔模板字符串】,右邊的選項(xiàng)都用默認(rèn)值。文件擴(kuò)展名指文件的后綴名,具體見圖1.24。,,圖1.24 設(shè)置文檔模板字符串,返回,4. 數(shù)據(jù)庫(kù)支持,在左邊選擇【數(shù)據(jù)庫(kù)支持

24、】,將出現(xiàn)如圖1.25所示的界面。如果不編寫數(shù)據(jù)庫(kù)應(yīng)用程序,選擇【無】;如果想要訪問數(shù)據(jù)庫(kù) ,但不想應(yīng)用程序從類CFormView派生視圖 ,或者其界面不含有記錄菜單,則選擇【僅支持頭文件】;如果想要應(yīng)用程序從類CFormView派生視圖,并且其界面含有記錄菜單,但不需要保存文檔,則選擇【不支持文件的數(shù)據(jù)庫(kù)視圖】;如果還需要文檔保存功能,則選擇【支持文件的數(shù)據(jù)庫(kù)視圖】。當(dāng)選擇第3、4項(xiàng)時(shí),你還要選擇客戶端的數(shù)據(jù)庫(kù)類型:OLE DB或者O

25、DBC,并可以指定數(shù)據(jù)源及其他操作。,,圖1.25 設(shè)置數(shù)據(jù)庫(kù)支持,返回,5. 用戶界面功能,選擇左邊的【用戶界面功能】,右邊的【主框架樣式】和【工具欄】都用默認(rèn)值,具體見圖1.26。,,圖1.26 設(shè)置用戶界面功能,返回,6. 高級(jí)功能,選擇左邊的【高級(jí)功能】,將出現(xiàn)如圖1.27所示的界面,保持默認(rèn)設(shè)置。【區(qū)分上下文的幫助】可以選擇WinHelp格式或HTML幫助格式,WinHelp格式是傳統(tǒng)的Windows幫助格式、幫助源文

26、件為.RTF文件;而HTML幫助格式是Windows最新幫助格式,幫助源文件為.HTML文件?!咀罱募斜砩系奈募?shù)】為4。如圖1.27所示。,,圖1.27 設(shè)定高級(jí)功能,返回,7. 生成的類,選擇左邊【生成的類】,將出現(xiàn)如圖1.28所示的界面。其中【基類】下拉列表框中有許多基類可供選擇,注意在【基類】中選擇CEditView。 單擊【完成】按鈕,Visual C++ .NET就自動(dòng)生成一個(gè)多文檔應(yīng)用程序。,,圖1

27、.28 選擇生成的類,返回,1.4.3 生成應(yīng)用程序,選擇菜單欄上的【生成】|【生成解決方案】,然后選擇【調(diào)試】|【開始執(zhí)行(不調(diào)試)】,或者直接按Ctrl + F5鍵編譯運(yùn)行,運(yùn)行界面如圖1.29所示。程序中可以對(duì)文字進(jìn)行簡(jiǎn)單的編輯。如果文檔有了更改,系統(tǒng)還會(huì)提示用戶是否保存文檔??矗粋€(gè)簡(jiǎn)單的文檔編輯器誕生了,不需要用戶寫一行代碼。,返回,,圖1.29 Jiao1_2程序運(yùn)行界面,返回,1.5 理解Visual C++ .N

28、ET工程,Visual C++ .NET作為一種程序設(shè)計(jì)語(yǔ)言,同時(shí)也是一個(gè)集成開發(fā)工具,提供了軟件代碼自動(dòng)生成和可視化的資源編輯功能。在使用Visual C++ .NET開發(fā)應(yīng)用程序的過程中,系統(tǒng)生成了大量的各種類型的文件,在本節(jié)中將要詳細(xì)介紹Visual C++ .NET中這些不同類型的文件分別起什么樣的作用 , 在此基礎(chǔ)上對(duì) Visual C++ .NET如何管理應(yīng)用程序所用到的各種文件有一個(gè)全面的認(rèn)識(shí)。,1.6 上 機(jī) 指 導(dǎo),

29、程序員最重要的是動(dòng)手能力,如果只會(huì)構(gòu)思,但是不能把思想變成一個(gè)實(shí)實(shí)在在的程序,那么也是很遺憾的。勤于練習(xí)才能真正掌握編程的方法。在1.3小節(jié)我們已經(jīng)練習(xí)了利用 MFC 應(yīng)用程序向?qū)?MFC 應(yīng)用程序 。下面來練習(xí)一下利用向?qū)煽刂婆_(tái)程序的方法。Visual C++ .NET可以開發(fā)基于 .NET的控制臺(tái)程序和基于Win32的控制臺(tái)程序。 .NET的控制臺(tái)應(yīng)用程序是基于通用語(yǔ)言運(yùn)行時(shí)環(huán)境的,而Win32控制臺(tái)程序是基于本機(jī)運(yùn)行環(huán)境

30、的,直接生成本機(jī)機(jī)器碼。 1.6.1 .NET的控制臺(tái)程序開發(fā)步驟 1.6.2 Win32的控制臺(tái)程序開發(fā)步驟,第2章 Visual C++ .NET的基本語(yǔ)法,教學(xué)提示:在本章,主要是對(duì)Visual C++ .NET 的基本語(yǔ)法要素進(jìn)行介紹,包括標(biāo)識(shí)符和關(guān)鍵字、基本數(shù)據(jù)類型、變量和常量、命名空間、預(yù)編譯指令、運(yùn)算符和表達(dá)式。但僅僅掌握這些還是不夠的。本章還進(jìn)一步介紹了控制語(yǔ)句、結(jié)構(gòu)體、聯(lián)合體、枚舉

31、、指針和數(shù)組的詳細(xì)使用方法。學(xué)習(xí)完這些內(nèi)容后,讀者對(duì)其語(yǔ)言將會(huì)有一個(gè)比較全面的了解。,教學(xué)目標(biāo):掌握Visual C++ .NET語(yǔ)言的基本數(shù)據(jù)類型,熟悉常用的標(biāo)識(shí)符、運(yùn)算符、關(guān)鍵字;掌握常量和變量的定義方法;掌握數(shù)據(jù)類型的轉(zhuǎn)換方法;理解預(yù)編譯指令、命名空間;掌握各種控制語(yǔ)句的使用方法;掌握結(jié)構(gòu)體、聯(lián)合體和枚舉的定義及其使用方法;掌握指針和數(shù)組的使用方法,熟練掌握函數(shù)的使用方法。通過上機(jī)實(shí)踐,初步掌握上述內(nèi)容的靈活運(yùn)用。,2.1 標(biāo)識(shí)

32、符和關(guān)鍵字,任何一門語(yǔ)言都有它自己的標(biāo)識(shí)符和關(guān)鍵字,C++也不例外。標(biāo)識(shí)符(identifier)是指常量、變量、語(yǔ)句標(biāo)號(hào)、自定義函數(shù)、對(duì)象等能被編譯器識(shí)別而提供的惟一名稱,所有標(biāo)識(shí)符的首字符必須以字母(a~z,A~Z)或下劃線(_)開始,后面的字符可以是字母、下劃線或數(shù)字(0~9)。C++語(yǔ)言區(qū)分大小寫,因此,大寫的英文字母與其對(duì)應(yīng)的小寫英文字母是表示不同的標(biāo)識(shí)符的,如localString和localstring代表兩個(gè)不同的標(biāo)識(shí)

33、符。 關(guān)鍵字是C++語(yǔ)言保留的標(biāo)識(shí)符,每個(gè)關(guān)鍵字都有特殊的意義,不能當(dāng)作其他用途使用。,2.2 基本數(shù)據(jù)類型,C++語(yǔ)言使用確定的數(shù)據(jù)類型來組織各種數(shù)據(jù),并根據(jù)各種數(shù)據(jù)類型來存儲(chǔ)和操作這些數(shù)據(jù)?;镜臄?shù)據(jù)類型是C++預(yù)定義的類型,編程人員可以直接利用這些類型來定義數(shù)據(jù)。下面來看看C++中的基本數(shù)據(jù)類型:Bool(邏輯型)、char(字符型)、short(短整型)、int(整型)、long(長(zhǎng)整型)、float(浮型)、

34、double(雙精度型)、long double(長(zhǎng)雙精度型)。bool類型用true和false代表真與假,其占用空間是8位。char是字符型類型,它在計(jì)算機(jī)里面是以ASCII表示的,占8位。short、int和long都是整型,只是數(shù)據(jù)的位數(shù)不一樣:short占8位;int在DOS環(huán)境下占16位,在Windows下面占32位;long占32位。還可以在這三個(gè)類型前面加unsigned,表示無符號(hào)整數(shù)(即只表示正數(shù))。Floa

35、t、double、long double都是浮點(diǎn)型類型,只是位數(shù)不一樣,float占32位,double占64位,long double占80位。,2.3 常量和變量,常量是指C++語(yǔ)言中表示固定數(shù)值或字符值的標(biāo)識(shí)符,并且在程序的執(zhí)行過程中不允許修改。通過使用關(guān)鍵字const,可以將一個(gè)變量(下面會(huì)講變量)定義為一個(gè)常量,并且const可以位于數(shù)據(jù)類型前或者數(shù)據(jù)類型后面。其定義的一般格式為:type const 變量名=值或者c

36、onst type 變量名=值 在定義變量時(shí),應(yīng)給出該變量的數(shù)據(jù)類型和名字,還可以給這個(gè)變量賦一個(gè)初始值,也可以在以后再賦值,系統(tǒng)在編譯時(shí)就會(huì)分配給該變量一個(gè)合適的內(nèi)存空間。 變量的一般定義為: 數(shù)據(jù)類型 變量名=值(可選),2.4 命 名 空 間,命名空間是為了處理不同公司或個(gè)人使用相同的標(biāo)識(shí)符這種情況而使用的一個(gè)概念。假設(shè)AAA公司使用了自己的一套標(biāo)志符,BBB公司也使用自己

37、的一套標(biāo)識(shí)符,現(xiàn)在如果要使用這兩家公司的某些標(biāo)識(shí)符,且兩個(gè)公司都提供了變量標(biāo)識(shí)符INTEGER,那么在程序中使用INTEGER到底是使用AAA公司的,還是BBB公司的呢?這是個(gè)棘手的問題,Visual C++ .NET編譯器也會(huì)報(bào)錯(cuò)。,2.5 運(yùn)算符、表達(dá)式和語(yǔ)句,在C++語(yǔ)言中,運(yùn)算符是指對(duì)操作數(shù)進(jìn)行操作的符號(hào),按照運(yùn)算功能,C++運(yùn)算符可分為算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符和賦值運(yùn)算符等,按優(yōu)先級(jí)順序,C++運(yùn)算符如表

38、2.3所示。,2.6 預(yù)編譯指令,預(yù)編譯指令指在程序正式編譯前就由編譯器進(jìn)行編譯的操作,可以放在程序中的任何位置。常見的預(yù)編譯指令有: #include "頭文件"或#include : 該指令指示編譯器將頭文件的全部?jī)?nèi)容插入此處。若用括起頭文件則在系統(tǒng)的INCLUDE目錄中尋找文件,若用“”括起文件則在當(dāng)前目錄中尋找文件。一般來說,頭文件后綴名都為.h,其中主要內(nèi)容為各種變量的聲明

39、。,2.7 數(shù)據(jù)類型轉(zhuǎn)換,在進(jìn)行程序的開發(fā)過程中,數(shù)據(jù)類型的轉(zhuǎn)換是會(huì)經(jīng)常碰到的。在一個(gè)表達(dá)式當(dāng)中,所有的變量必須是相同類型才能進(jìn)行運(yùn)算,但是在一般的表達(dá)式中很難有相同類型的變量來進(jìn)行運(yùn)算。因此,不同類別的變量進(jìn)行運(yùn)算時(shí),C++會(huì)先將較低類型的操作數(shù)轉(zhuǎn)換為較高類型的操作數(shù)再進(jìn)行運(yùn)算。在計(jì)算機(jī)中,數(shù)據(jù)都是用二進(jìn)制位來存放的,較低類型是指存儲(chǔ)位數(shù)較少的類型,較高類型則是指存儲(chǔ)位數(shù)較多的類型。如定義變量int a和long b,則進(jìn)行a+b的

40、運(yùn)算時(shí),要先將a轉(zhuǎn)換為long型,再與b相加。 數(shù)據(jù)類型的高低順序依序?yàn)椋簂ong double、double、float、long、int、short、char。,2.8 數(shù)據(jù)的基本輸入與輸出,數(shù)據(jù)的基本輸入與輸出是程序與用戶進(jìn)行交互的重要手段,可以設(shè)想一下,如果一個(gè)程序既不能輸入也不能輸出,那么這會(huì)是個(gè)什么程序?用戶什么數(shù)據(jù)都輸不進(jìn)去,也看不到程序的運(yùn)行結(jié)果。所以處理好程序的輸入輸出是很重要的。C++中提供了兩

41、個(gè)基本的輸入和輸出的函數(shù):cout(輸出)及cin(輸入)。,2.9 控 制 語(yǔ) 句,程序控制語(yǔ)句控制程序的執(zhí)行過程和方向,因此是非常重要的。靈活運(yùn)用各種控制語(yǔ)句可以輕松地完成你想要做的事情。C++中的控制語(yǔ)句包括條件語(yǔ)句、循環(huán)語(yǔ)句、判斷和跳轉(zhuǎn)語(yǔ)句,下面具體介紹它們的用法。 2.9.1 條件(選擇)語(yǔ)句 2.9.2 循環(huán)語(yǔ)句 2.9.3 判斷和跳轉(zhuǎn)語(yǔ)句(轉(zhuǎn)移語(yǔ)句),2.9.1 條件(選擇)語(yǔ)句,C++語(yǔ)

42、言支持幾種基本的條件語(yǔ)句:if語(yǔ)句、if…else語(yǔ)句、?:語(yǔ)句、switch語(yǔ)句。 1. if語(yǔ)句 2. if…else語(yǔ)句 3. ?:條件語(yǔ)句 4. switch語(yǔ)句,返回,1. if語(yǔ)句,if語(yǔ)句用于在程序中有條件地執(zhí)行某一語(yǔ)句序列,語(yǔ)法形式如下:if(表達(dá)式)執(zhí)行語(yǔ)句;//滿足表達(dá)式時(shí)執(zhí)行的語(yǔ)句 其中表達(dá)式是一個(gè)關(guān)系或邏輯表達(dá)式,執(zhí)行語(yǔ)句

43、是指當(dāng)表達(dá)式為真時(shí)執(zhí)行,為假時(shí)跳過執(zhí)行。如果執(zhí)行語(yǔ)句包含多個(gè)語(yǔ)句,則必須用{}包圍起來作為一個(gè)整體來執(zhí)行。例如:如果變量a大于變量b,則把a(bǔ)與b之和賦給變量c,其語(yǔ)句如下:if(a>b)c=a+b;,返回,2. if…else語(yǔ)句,它的一般格式是:if(表達(dá)式)執(zhí)行語(yǔ)句1;//如果表達(dá)式為真,則執(zhí)行語(yǔ)句1else執(zhí)行語(yǔ)句2;//如果表達(dá)式為假,則執(zhí)行語(yǔ)句2if…else語(yǔ)句的變體結(jié)構(gòu)(可以判斷兩種以上的情況):i

44、f(表達(dá)式1)執(zhí)行語(yǔ)句1;//如果表達(dá)式1為真,則執(zhí)行語(yǔ)句1else if(表達(dá)式2)執(zhí)行語(yǔ)句2;//如果表達(dá)式2為真,則執(zhí)行語(yǔ)句2…..…..//如果表達(dá)式i為真,則執(zhí)行語(yǔ)句i…...else執(zhí)行語(yǔ)句n;//其他情況,則執(zhí)行語(yǔ)句n,返回,3. ?:條件語(yǔ)句,?:條件語(yǔ)句是if…else條件語(yǔ)句的簡(jiǎn)化形式,其格式如下:(a>b)?c:d;//如果表達(dá)式a>b為真,則其結(jié)果為c,否則為d,返回,4. sw

45、itch語(yǔ)句,switch語(yǔ)句與if…else的變體結(jié)構(gòu)類似,都是從多種供選擇的情況中選擇一種執(zhí)行,其語(yǔ)法形式為:switch(表達(dá)式){case:值1:語(yǔ)句段1;//如果表達(dá)式與值1相等,則執(zhí)行語(yǔ)句段1break;case:值2:語(yǔ)句段2;//如果表達(dá)式與值2相等,則執(zhí)行語(yǔ)句段2break;……;//如果表達(dá)式與值i相等,則執(zhí)行語(yǔ)句段idefault://default語(yǔ)句段可以不要語(yǔ)句段n://如果表達(dá)式與值n

46、相等,則執(zhí)行語(yǔ)句段nbreak;},返回,2.9.2 循環(huán)語(yǔ)句,程序結(jié)構(gòu)中的重復(fù)性操作的語(yǔ)句可以用循環(huán)語(yǔ)句來完成,循環(huán)語(yǔ)句可以根據(jù)循環(huán)變量來執(zhí)行指定的次數(shù)。C++語(yǔ)言提供while、for、do…while三種循環(huán)語(yǔ)句,它們之間的不同之處在于while和for先判斷條件,再執(zhí)行語(yǔ)句;而do…while是先執(zhí)行語(yǔ)句,再判斷條件。這樣可以看出while和for循環(huán)有可能一次都不執(zhí)行,而do…while至少執(zhí)行一次。它們的共同點(diǎn)是當(dāng)條件

47、語(yǔ)句為非零時(shí)為真,而為零時(shí)則為假。這三種循環(huán)語(yǔ)句可以相互轉(zhuǎn)換。 1. while語(yǔ)句 2. for語(yǔ)句 3. do…while循環(huán)語(yǔ)句,返回,1. while語(yǔ)句,當(dāng)循環(huán)次數(shù)無法計(jì)算或者很難確定時(shí),可以考慮用while循環(huán)語(yǔ)句。它的語(yǔ)法結(jié)構(gòu)為:while(表達(dá)式){循環(huán)體語(yǔ)句;},返回,2. for語(yǔ)句,for語(yǔ)句通常用于處理具有固定長(zhǎng)度的數(shù)據(jù)結(jié)構(gòu),for循環(huán)語(yǔ)句的語(yǔ)法結(jié)構(gòu)如下:

48、for((表達(dá)式1)初始化部分;(表達(dá)式2)循環(huán)條件部分;(表達(dá)式3)增量部分){循環(huán)體語(yǔ)句; // 如果是單條語(yǔ)句,可以省略外面的大括弧},返回,3. do…while循環(huán)語(yǔ)句,do…while也叫“直到型”循環(huán)結(jié)構(gòu),即一直執(zhí)行到條件為假時(shí)退出循環(huán)。其格式為:do{循環(huán)語(yǔ)句}while(循環(huán)條件表達(dá)式);,返回,2.9.3 判斷和跳轉(zhuǎn)語(yǔ)句(轉(zhuǎn)移語(yǔ)句),當(dāng)執(zhí)行該類語(yǔ)句時(shí),它要改變程序的執(zhí)行順序,即不依次執(zhí)行緊跟其后的語(yǔ)

49、句,而跳到另一個(gè)語(yǔ)句處接著執(zhí)行。從表面上看循環(huán)語(yǔ)句或條件語(yǔ)句也改變了程序的執(zhí)行順序,但由于整個(gè)循環(huán)可以看作一個(gè)語(yǔ)句(條件語(yǔ)句也一樣),因此它們也仍然是順序執(zhí)行的。C++中的轉(zhuǎn)移語(yǔ)句有break、continue和goto語(yǔ)句。 1. break語(yǔ)句 2. continue語(yǔ)句 3. goto語(yǔ)句,返回,1. break語(yǔ)句,break語(yǔ)句用于強(qiáng)制退出循環(huán)語(yǔ)句以及case語(yǔ)句的

50、執(zhí)行,用在while和do…while、for循環(huán)語(yǔ)句中,使它們終止執(zhí)行,即用于從循環(huán)體內(nèi)跳出,提前結(jié)束循環(huán)。用于switch…case中則是執(zhí)行對(duì)應(yīng)的case語(yǔ)句后跳出switch…case。,返回,2. continue語(yǔ)句,continue語(yǔ)句用于while、do…while、for循環(huán)語(yǔ)句中,當(dāng)執(zhí)行到continue語(yǔ)句時(shí),終止后面的循環(huán)執(zhí)行語(yǔ)句,直接進(jìn)行循環(huán)條件語(yǔ)句的判斷,如果為真則開始下一輪循環(huán),如果為假則終止循環(huán)。

51、 continue與break語(yǔ)句不同,它并不終止整個(gè)循環(huán)語(yǔ)句,而僅僅終止當(dāng)前這一次循環(huán)的執(zhí)行。,返回,3. goto語(yǔ)句,goto語(yǔ)句一般很少使用,一般有人認(rèn)為大量使用goto語(yǔ)句會(huì)使程序的執(zhí)行過程混亂且容易出錯(cuò),這是對(duì)的,但是在程序中適當(dāng)?shù)厥褂胓oto語(yǔ)句可以使程序簡(jiǎn)單明了。如果有一個(gè)多重嵌套循環(huán),須從最里層跳到最外層,若用break來實(shí)現(xiàn),則每一層循環(huán)中都要調(diào)用break語(yǔ)句,很麻煩。但是如果在最里層用goto語(yǔ)句的話,就可以一

52、下子跳到外面的一個(gè)標(biāo)號(hào)處,并把流程跳轉(zhuǎn)到該處,很方便。它的格式為:goto 語(yǔ)句標(biāo)號(hào),返回,2.10 指針、數(shù)組與字符串,2.10.1 指針2.10.2 數(shù)組2.10.3 字符串,2.10.1 指針,在計(jì)算機(jī)中,內(nèi)存儲(chǔ)器是由若干存儲(chǔ)單元組成的,每個(gè)存儲(chǔ)單元均有一個(gè)惟一的編號(hào)用于標(biāo)識(shí)該存儲(chǔ)單元,該編號(hào)稱為存儲(chǔ)單元的地址。在C++中,數(shù)據(jù)是用變量存放在存儲(chǔ)單元中的,而指針就是一個(gè)保存著某變量在內(nèi)存中的存儲(chǔ)單元中的位置變量,即

53、指針是指向變量在內(nèi)存中的地址,可以通過指針來指向變量在內(nèi)存中的地址來訪問和控制變量。指針的定義形式為:數(shù)據(jù)類型 *指針名;,返回,2.10.2 數(shù)組,數(shù)組就是把一系列有序的相同類型的數(shù)據(jù)組合起來的數(shù)據(jù)集合。數(shù)組都有一個(gè)名字即數(shù)組名。數(shù)組中的每一個(gè)數(shù)據(jù)稱為數(shù)組元素,數(shù)組元素在數(shù)組中的位置由下標(biāo)確定。根據(jù)數(shù)組元素下標(biāo)的個(gè)數(shù),數(shù)組分為一維數(shù)組、二維數(shù)組和多維數(shù)組。當(dāng)數(shù)組元素的數(shù)據(jù)類型為字符型時(shí),該數(shù)組稱為字符數(shù)組。當(dāng)數(shù)組元素的數(shù)據(jù)類型為

54、整型時(shí),該數(shù)組稱為整型數(shù)組。,返回,2.10.3 字符串,字符串就是用一對(duì)雙引號(hào)括起來的字符序列。例如“I am a student!”是一個(gè)字符串。字符串中的字符可以是能顯示的字符,也可以是轉(zhuǎn)義字符,如‘\t’表示跳格。在C++中,為了判斷字符串是否結(jié)束,系統(tǒng)自動(dòng)在字符串的末尾加上一個(gè)字符‘\0’,作為字符串的結(jié)束標(biāo)志。如字符串“I am a student!”共15個(gè)字符,但實(shí)際上在計(jì)算機(jī)內(nèi)存里占用16個(gè)存儲(chǔ)單元。最后一個(gè)存儲(chǔ)單元

55、存放‘\0’,作為字符串的結(jié)束標(biāo)志,所以字符串的存儲(chǔ)空間比實(shí)際的字符數(shù)要多1。 注意字符串常量和字符常量是有區(qū)別的,字符串常量是用雙引號(hào)括起來的字符序列,而字符常量則是用單引號(hào)括起來的單個(gè)字符,它們所占的內(nèi)存空間也不同。 字符串一般存放在字符數(shù)組中,字符數(shù)組就是存放字符的數(shù)組,返回,2.11 函 數(shù),—個(gè)C++程序可由一個(gè)或多個(gè)源程序文件組成,一個(gè)源程序文件可由一個(gè)或多個(gè)函數(shù)組成;函數(shù)是構(gòu)成C

56、++程序的基礎(chǔ),任意—個(gè)C++源程序都是由若干個(gè)函數(shù)組成的。C++中的函數(shù)分為庫(kù)函數(shù)與自定義函數(shù)兩類,庫(kù)函數(shù)是由C++系統(tǒng)提供的標(biāo)準(zhǔn)函數(shù)(如求一個(gè)數(shù)的絕對(duì)值可用函數(shù):“int abs( int n );”);自定義函數(shù)是需要自己寫的函數(shù)。C++中的函數(shù)是這樣定義的:返回值數(shù)據(jù)類型 函數(shù)名(參數(shù)表){語(yǔ)句;},2.12 結(jié)構(gòu)、聯(lián)合和枚舉,2.12.1 結(jié)構(gòu)2.12.2 聯(lián)合體2.12.3 枚舉類型,2.12.1 結(jié)

57、構(gòu),有時(shí)候需要將不同類型的數(shù)據(jù)組合成有機(jī)整體 ,以方便引用這些數(shù)據(jù)。這些數(shù)據(jù)之間是相互聯(lián)系的,例如,一個(gè)人的基本信息包括姓名、性別、年齡、身高、體重等;一個(gè)學(xué)生的基本信息包括學(xué)號(hào)、姓名、年齡、某些課程成績(jī)、住址等。如果將這些數(shù)據(jù)分別存放在不同的數(shù)據(jù)變量中,就不能體現(xiàn)它們之間的內(nèi)在聯(lián)系,并且在引用這些數(shù)據(jù)時(shí)也會(huì)由于它們之間的聯(lián)系不明確而變得很復(fù)雜,容易出錯(cuò)??梢酝ㄟ^使用結(jié)構(gòu)體將這些不同類型的數(shù)據(jù)定義為一個(gè)特殊的數(shù)據(jù)類型,這樣就能很方便地使

58、用這些數(shù)據(jù)了。 結(jié)構(gòu)體是指由不同類型的一組變量組成的一個(gè)數(shù)據(jù)單位 ,在 C和C++語(yǔ)言中,使用保留字struct來構(gòu)造一個(gè)結(jié)構(gòu)體,定義一個(gè)結(jié)構(gòu)體類型的形式如下:struct 結(jié)構(gòu)體名{結(jié)構(gòu)體成員列表},返回,2.12.2 聯(lián)合體,聯(lián)合體是指幾個(gè)不同類型的變量共用一個(gè)內(nèi)存單元的一種數(shù)據(jù)類型,這樣的變量可以在一個(gè)運(yùn)算中構(gòu)成一個(gè)整數(shù),在另外一個(gè)運(yùn)算中構(gòu)成一個(gè)實(shí)數(shù)。定義聯(lián)合體類型需要用到保留字union,定義的一般形式

59、如下:union 聯(lián)合體名{ 成員列表}變量列表,返回,2.12.3 枚舉類型,在實(shí)際生活中,經(jīng)常會(huì)遇到只有有限個(gè)取值的變量,例如,每一天只可能是星期一到星期天7種之間的一種,一個(gè)布袋里只有紅、黃、藍(lán)、綠、黑5種顏色的玻璃球等等。 針對(duì)這樣的變量,可以定義其為枚舉類型,即變量的值可以一一列舉出來。定義枚舉類型需要用到保留字enum,返回,2.13 上 機(jī) 指 導(dǎo),本章講述了Visual C++ .NET的基

60、本語(yǔ)法。在本次的上機(jī)指導(dǎo)中,將針對(duì)上述內(nèi)容進(jìn)行實(shí)際上機(jī)練習(xí)。主要內(nèi)容為:基本的輸出輸入語(yǔ)法的使用;命名空間的引入;基本控制語(yǔ)句的使用;函數(shù)的使用等。 2.13.1 if語(yǔ)句的使用 2.13.2 switch語(yǔ)句的使用 2.13.3 函數(shù)的使用,第3章 類 和 對(duì) 象,教學(xué)提示:類和對(duì)象是面向?qū)ο蟪绦蛟O(shè)計(jì)的核心概念,繼承性和多態(tài)性是面向?qū)ο蟪绦蛟O(shè)計(jì)的重要特性,本章對(duì)Visual C++ .NET中的類和對(duì)象、繼

61、承和派生、多態(tài)和虛函數(shù)、模板類和模板函數(shù)進(jìn)行了詳細(xì)介紹。,教學(xué)目標(biāo):掌握類和對(duì)象的定義,熟悉Visual C++ .NET語(yǔ)言中的繼承機(jī)制,能熟練地通過重載、虛函數(shù)、抽象類等手段實(shí)現(xiàn)多態(tài)性。,3.1 類 和 對(duì) 象,類和對(duì)象是面向?qū)ο蟪绦蛟O(shè)計(jì)的核心,所以理解類和對(duì)象的概念是學(xué)習(xí)面向?qū)ο蟪绦蛟O(shè)計(jì)的關(guān)鍵。 3.1.1 類和對(duì)象的定義 3.1.2 對(duì)象與對(duì)象的定義 3.1.3 成員變量和成員函數(shù) 3.1

62、.4 構(gòu)造函數(shù)和析構(gòu)函數(shù),3.1.1 類和對(duì)象的定義,類是一種復(fù)雜的數(shù)據(jù)類型 ,它是將不同類型的數(shù)據(jù)和與這些數(shù)據(jù)相關(guān)的操作封裝在一起的集合體。類的定義格式一般分為說明部分和實(shí)現(xiàn)部分。說明部分是用來說明該類中的成員,包括數(shù)據(jù)成員的說明和成員函數(shù)的說明。其中,成員函數(shù)是用來對(duì)數(shù)據(jù)成員進(jìn)行操作的,又稱為“方法”。實(shí)現(xiàn)部分是用來對(duì)成員函數(shù)的定義。類的一般定義格式如下:class{public:private:},返回,3.

63、1.2 對(duì)象與對(duì)象的定義,對(duì)象是類的實(shí)例。對(duì)象是屬于某個(gè)已知的類。因此,定義對(duì)象之前,一定要先定義好該對(duì)象的類。對(duì)象在確定了它的類以后,其定義格式如下: 其中,是要定義的對(duì)象所屬類的名字,即所定義的對(duì)象是該類類型的對(duì)象。中可以有一個(gè)或多個(gè)對(duì)象,多個(gè)對(duì)象名是用逗號(hào)分隔。,返回,3.1.3 成員變量和成員函數(shù),一個(gè)對(duì)象的成員就是該對(duì)象的類所定義的成員。對(duì)象成員有數(shù)據(jù)成員和成員函數(shù),其表示方法如下:.或者.(),返回,3.1.

64、4 構(gòu)造函數(shù)和析構(gòu)函數(shù),1. 構(gòu)造函數(shù)和析構(gòu)函數(shù)2. 默認(rèn)構(gòu)造函數(shù)和默認(rèn)析構(gòu)函數(shù)3. 復(fù)制初始化構(gòu)造函數(shù),返回,1. 構(gòu)造函數(shù)和析構(gòu)函數(shù),構(gòu)造函數(shù)和析構(gòu)函數(shù)是在類體中說明的兩種特殊成員函數(shù) 。構(gòu)造函數(shù)的功能是在創(chuàng)建對(duì)象時(shí),使用給定的值來初始化對(duì)象。析構(gòu)函數(shù)的功能是用來釋放一個(gè)對(duì)象,在對(duì)象刪除前,用它來做一些清理工作,它與構(gòu)造函數(shù)的功能正好相反。,返回,2. 默認(rèn)構(gòu)造函數(shù)和默認(rèn)析構(gòu)函數(shù),在類定義過程中,如果沒有定義任何構(gòu)造

65、函數(shù),則編譯器自動(dòng)生成一個(gè)不帶參數(shù)的默認(rèn)構(gòu)造函數(shù),其格式如下:::(){…},返回,3. 復(fù)制初始化構(gòu)造函數(shù),復(fù)制初始化構(gòu)造函數(shù)是一種特殊的成員函數(shù),它的功能是用一個(gè)已知的對(duì)象來初始化一個(gè)被創(chuàng)建的同類對(duì)象。復(fù)制初始化構(gòu)造函數(shù)實(shí)際上也是構(gòu)造函數(shù),它是在初始化時(shí)被調(diào)用來將一個(gè)已知對(duì)象的數(shù)據(jù)成員值復(fù)制給正在創(chuàng)建的另一個(gè)同類對(duì)象。,返回,3.2 類的繼承和派生,繼承性是面向?qū)ο蟪绦蛟O(shè)計(jì)中最重要的機(jī)制。這種機(jī)制改變了過去傳統(tǒng)的非面向?qū)?/p>

66、象程序設(shè)計(jì)中那種對(duì)不再適合要求的用戶定義數(shù)據(jù)類型進(jìn)行改寫甚至重寫的方法,克服了傳統(tǒng)程序設(shè)計(jì)方法對(duì)編寫出來的程序無法重復(fù)使用而造成的資源浪費(fèi)。通過C++語(yǔ)言中的繼承機(jī)制,可以擴(kuò)充和完善舊的程序設(shè)計(jì)以適應(yīng)新的需求,這樣不僅可以節(jié)省程序開發(fā)時(shí)間和資源,并且為將來程序設(shè)計(jì)增添了新的資源。 3.2.1 基類和派生類 3.2.2 單一繼承 3.2.3 虛基類,,3.2.1 基類和派生類,通過繼承機(jī)制,可以利用已

67、有的數(shù)據(jù)類型來定義新的數(shù)據(jù)類型。所定義的新數(shù)據(jù)類型不僅擁有新定義的成員,而且還同時(shí)擁有舊的成員,則稱已存在的用來派生新類的類為基類,又稱為父類。由已存在的類派生派生出的新類稱為派生類,又稱為子類。,返回,3.2.2 單一繼承,在單繼承中,每個(gè)類可以有多個(gè)派生類,但是每個(gè)派生類只能有一個(gè)基類,從而形成樹型結(jié)構(gòu)。1. 成員訪問權(quán)限的控制2. 構(gòu)造函數(shù)和析構(gòu)函數(shù),返回,1. 成員訪問權(quán)限的控制,在公有繼承(public)時(shí),派生類

68、的public、private、protected型的成員函數(shù)可以訪問基類中的公有成員和保護(hù)成員;而派生類的對(duì)象僅可訪問基類中的公有成員。 在私有繼承(private)時(shí),派生類的對(duì)象不可訪問基類中的任何成員。另外使用class關(guān)鍵字定義類時(shí),默認(rèn)的繼承方式是private。也就是說,當(dāng)繼承方式為私有繼承時(shí),可以省略private。 在保護(hù)繼承(protected)時(shí),把繼承方式public改為protecte

69、d,把protected變?yōu)閜rivate成員,private不變。,返回,2. 構(gòu)造函數(shù)和析構(gòu)函數(shù),派生類對(duì)象的數(shù)據(jù)結(jié)構(gòu)是由基類中說明的數(shù)據(jù)成員和派生類中說明的數(shù)據(jù)成員共同構(gòu)成。將派生類對(duì)象中由基類中說明的數(shù)據(jù)成員和操作構(gòu)成的封裝體稱為基類子對(duì)象,它由基類中的構(gòu)造函數(shù)進(jìn)行初始化。 構(gòu)造函數(shù)不能夠被繼承,因此,派生類的構(gòu)造函數(shù)必須通過調(diào)用基類的構(gòu)造函數(shù)來初始化基類子對(duì)象。所以,在定義派生類的構(gòu)造函數(shù)時(shí)除了對(duì)自己的數(shù)據(jù)成

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論