




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、內(nèi)容:C+程序設(shè)計面向?qū)ο蟪绦蛟O(shè)計MFC題型:1 讀程序?qū)懗鼋Y(jié)果(15%)2 改錯(指出錯誤,并改正)(45%)3 編程(20%)4 MFC程序填空(20%)C+程序設(shè)計標(biāo)識符標(biāo)識符 關(guān)鍵字關(guān)鍵字常量常量:十進(jìn)制常量、八進(jìn)制常量、十六進(jìn)制常量小數(shù)表示法、指數(shù)表示法)運(yùn)算符與表達(dá)式:算術(shù)運(yùn)算符及表達(dá)式、自增自減運(yùn)算優(yōu)先級低于算術(shù)運(yùn)算符優(yōu)先級低于算術(shù)運(yùn)算符語句1 條件語句: 在函數(shù)外面定義的變量稱為全局變量。在函數(shù)外面定義的變量稱為全局變量。在C+中函數(shù)內(nèi)要引用全局變量,可以在變量的標(biāo)識符前加上 :說明是說明是全局變量。 特點:特點: 全局變量可被每個函數(shù)使用。作用域是程序級或文件級全局變量可被每
2、個函數(shù)使用。作用域是程序級或文件級的。的。 全局變量存放在全局?jǐn)?shù)據(jù)區(qū)。全局變量存放在全局?jǐn)?shù)據(jù)區(qū)。 全局變量默認(rèn)初始值為全局變量默認(rèn)初始值為0,也可專門初始化。,也可專門初始化。int a; void main()int a=1; :a=a;局部變量局部變量 局部變量即在函數(shù)內(nèi)部定義的變量或函數(shù)參數(shù)。局部變量即在函數(shù)內(nèi)部定義的變量或函數(shù)參數(shù)。作用域為函數(shù)級或塊級。局部變量僅在定義的作用域為函數(shù)級或塊級。局部變量僅在定義的函數(shù)內(nèi)部是可見的。函數(shù)內(nèi)部是可見的。 特點:特點: 局部變量只能在函數(shù)內(nèi)部使用。局部變量只能在函數(shù)內(nèi)部使用。 局部變量存放在棧中,當(dāng)函數(shù)運(yùn)行時分配空間,在局部變量存放在棧中,當(dāng)函
3、數(shù)運(yùn)行時分配空間,在運(yùn)行結(jié)束時釋放空間。運(yùn)行結(jié)束時釋放空間。 局部變量必須先初始化才能使用。局部變量必須先初始化才能使用。 局部變量可以與全局變量同名,那么全局變量在函局部變量可以與全局變量同名,那么全局變量在函數(shù)中將不再起作用。數(shù)中將不再起作用。(4)靜態(tài)局部變量)靜態(tài)局部變量 在局部變量前加上在局部變量前加上static關(guān)鍵字,就成了靜態(tài)局關(guān)鍵字,就成了靜態(tài)局部變量。部變量。 特點:特點: 靜態(tài)局部變量在定義它的函數(shù)內(nèi)部是可見的,只能靜態(tài)局部變量在定義它的函數(shù)內(nèi)部是可見的,只能被定義它的函數(shù)使用。這一點與局部變量相同。被定義它的函數(shù)使用。這一點與局部變量相同。 靜態(tài)局部變量存放在內(nèi)存的全局
4、數(shù)據(jù)區(qū),靜態(tài)局部靜態(tài)局部變量存放在內(nèi)存的全局?jǐn)?shù)據(jù)區(qū),靜態(tài)局部變量一經(jīng)定義不會再次分配存儲空間,也不會自行變量一經(jīng)定義不會再次分配存儲空間,也不會自行消失,直到程序運(yùn)行結(jié)束,這一點與全局變量相同。消失,直到程序運(yùn)行結(jié)束,這一點與全局變量相同。 靜態(tài)局部變量默認(rèn)初始值為靜態(tài)局部變量默認(rèn)初始值為0,也可專門初始化。,也可專門初始化。這一點又與全局變量相同這一點又與全局變量相同 指針:概念、運(yùn)算符(*,&)、定義、使用、指針的運(yùn)算指針與數(shù)組二級指針、指針數(shù)組引用:定義與使用結(jié)構(gòu)體 class public: ;protected: ; private: ;(1)訪問對象成員)訪問對象成員. /用來訪問
5、數(shù)據(jù)成員用來訪問數(shù)據(jù)成員或者或者.() /用來訪問成員函數(shù)用來訪問成員函數(shù)(2)用指針訪問對象成員)用指針訪問對象成員- /用來訪問數(shù)據(jù)成員用來訪問數(shù)據(jù)成員-() /用來訪問成員函數(shù)用來訪問成員函數(shù)或者或者(*). /用來訪問數(shù)據(jù)成員用來訪問數(shù)據(jù)成員(*).() /用來訪問成員函數(shù)用來訪問成員函數(shù)(3)用引用傳遞訪問對象成員)用引用傳遞訪問對象成員. /用來訪問數(shù)據(jù)成員用來訪問數(shù)據(jù)成員或者或者.() /用來訪問成員函數(shù)用來訪問成員函數(shù) 構(gòu)造函數(shù)和析構(gòu)函數(shù)都是類的成員函數(shù),但它構(gòu)造函數(shù)和析構(gòu)函數(shù)都是類的成員函數(shù),但它們是特殊的成員函數(shù),不用調(diào)用便自動執(zhí)行,們是特殊的成員函數(shù),不用調(diào)用便自動執(zhí)行,
6、而且這些函數(shù)的名字與類的名字有關(guān)。而且這些函數(shù)的名字與類的名字有關(guān)。 創(chuàng)建對象時都要調(diào)用構(gòu)造函數(shù)(包括默認(rèn)構(gòu)造創(chuàng)建對象時都要調(diào)用構(gòu)造函數(shù)(包括默認(rèn)構(gòu)造函數(shù))。構(gòu)造函數(shù)的工作是建立對象的基本結(jié)函數(shù))。構(gòu)造函數(shù)的工作是建立對象的基本結(jié)構(gòu),進(jìn)行數(shù)據(jù)初始化。執(zhí)行構(gòu)造函數(shù)體中的代構(gòu),進(jìn)行數(shù)據(jù)初始化。執(zhí)行構(gòu)造函數(shù)體中的代碼。碼。 當(dāng)一個對象退出其作用域時,都要調(diào)用析構(gòu)函當(dāng)一個對象退出其作用域時,都要調(diào)用析構(gòu)函數(shù)。析構(gòu)函數(shù)的工作是:執(zhí)行析構(gòu)函數(shù)中的代數(shù)。析構(gòu)函數(shù)的工作是:執(zhí)行析構(gòu)函數(shù)中的代碼,將對象占據(jù)的存儲空間歸還系統(tǒng),做公共碼,將對象占據(jù)的存儲空間歸還系統(tǒng),做公共及用戶要求的善后工作。及用戶要求的善后工
7、作。構(gòu)造函數(shù)和析構(gòu)函數(shù)的特點:構(gòu)造函數(shù)和析構(gòu)函數(shù)的特點: 都沒有返回值說明,即定義構(gòu)造函數(shù)和析構(gòu)函數(shù)時不都沒有返回值說明,即定義構(gòu)造函數(shù)和析構(gòu)函數(shù)時不需指出類型。需指出類型。 它們不能被繼承。它們不能被繼承。 和大多數(shù)和大多數(shù)C+函數(shù)一樣,構(gòu)造函數(shù)可以有缺省參數(shù)。函數(shù)一樣,構(gòu)造函數(shù)可以有缺省參數(shù)。 析構(gòu)函數(shù)可以是虛的(析構(gòu)函數(shù)可以是虛的(virtual),但構(gòu)造函數(shù)不行。),但構(gòu)造函數(shù)不行。 不可取它們的地址。不可取它們的地址。 不能用常規(guī)調(diào)用方法調(diào)用構(gòu)造函數(shù);當(dāng)使用完全的限不能用常規(guī)調(diào)用方法調(diào)用構(gòu)造函數(shù);當(dāng)使用完全的限定名(帶對象名、類名和函數(shù)名)時可以調(diào)用析構(gòu)函定名(帶對象名、類名和函數(shù)名
8、)時可以調(diào)用析構(gòu)函數(shù)。數(shù)。 當(dāng)定義對象時,編譯程序自動調(diào)用構(gòu)造函數(shù);當(dāng)刪除當(dāng)定義對象時,編譯程序自動調(diào)用構(gòu)造函數(shù);當(dāng)刪除對象時,編譯程序自動地調(diào)用析構(gòu)函數(shù)。對象時,編譯程序自動地調(diào)用析構(gòu)函數(shù)。 若有帶參數(shù)的構(gòu)造函數(shù),在定義對象時必須給帶參若有帶參數(shù)的構(gòu)造函數(shù),在定義對象時必須給帶參數(shù)的構(gòu)造函數(shù)傳遞參數(shù),否則構(gòu)造函數(shù)將不被執(zhí)行。數(shù)的構(gòu)造函數(shù)傳遞參數(shù),否則構(gòu)造函數(shù)將不被執(zhí)行。但在有些構(gòu)造函數(shù)的使用中,一般都使用缺省值。但在有些構(gòu)造函數(shù)的使用中,一般都使用缺省值。因為在構(gòu)造函數(shù)中允許指定函數(shù)參數(shù)的缺省值,這因為在構(gòu)造函數(shù)中允許指定函數(shù)參數(shù)的缺省值,這被定義的缺省值在函數(shù)調(diào)用者不確定參數(shù)時可以作被定義
9、的缺省值在函數(shù)調(diào)用者不確定參數(shù)時可以作為參數(shù)來使用。為參數(shù)來使用。 缺省參數(shù)可以是一個或一個以上,若有一個以上的缺省參數(shù)可以是一個或一個以上,若有一個以上的缺省參數(shù),其用法和前面介紹的函數(shù)的缺省參數(shù)用缺省參數(shù),其用法和前面介紹的函數(shù)的缺省參數(shù)用法一樣。法一樣。默認(rèn)參數(shù)的順序規(guī)定默認(rèn)參數(shù)的順序規(guī)定 當(dāng)函數(shù)中定義默認(rèn)參數(shù)時,如果僅有部分參數(shù)定義成默認(rèn)參數(shù),當(dāng)函數(shù)中定義默認(rèn)參數(shù)時,如果僅有部分參數(shù)定義成默認(rèn)參數(shù),則應(yīng)將默認(rèn)參數(shù)連續(xù)放在右邊則應(yīng)將默認(rèn)參數(shù)連續(xù)放在右邊(不能空缺不能空缺)。當(dāng)調(diào)用函數(shù)時只能。當(dāng)調(diào)用函數(shù)時只能向左匹配參數(shù)。向左匹配參數(shù)。 例如:例如: void func(int a=1,i
10、nt b,int c=3,int d=4); /錯錯 void func(int a,int b=2,int c=3,int d=4); /正確正確 對于第二個聲明,其調(diào)用的方法為:對于第二個聲明,其調(diào)用的方法為: func(10,15,20,30); /正確正確 func( ); /錯誤錯誤 func(12,12); /正確,參數(shù)正確,參數(shù)c,d默認(rèn)默認(rèn) func(2,15, ,20); /錯誤,只能從右到左順序匹配默認(rèn)參數(shù),這錯誤,只能從右到左順序匹配默認(rèn)參數(shù),這等于將等于將c進(jìn)行默認(rèn)匹配,而沒有將進(jìn)行默認(rèn)匹配,而沒有將d也默認(rèn)匹配,也就是說,也默認(rèn)匹配,也就是說,c默認(rèn)匹配則默認(rèn)匹配則d
11、也必須先默認(rèn)匹配。也必須先默認(rèn)匹配。 構(gòu)造函數(shù)的執(zhí)行次序是先遇到哪個構(gòu)造構(gòu)造函數(shù)的執(zhí)行次序是先遇到哪個構(gòu)造函數(shù),就執(zhí)行哪個。函數(shù),就執(zhí)行哪個。 析構(gòu)函數(shù)的執(zhí)行次序恰好和構(gòu)造函數(shù)相析構(gòu)函數(shù)的執(zhí)行次序恰好和構(gòu)造函數(shù)相反。反。類的拷貝構(gòu)造函數(shù) 拷貝構(gòu)造函數(shù)是一種特殊的構(gòu)造函數(shù)??截悩?gòu)造函數(shù)是一種特殊的構(gòu)造函數(shù)。首先,它是一個構(gòu)造函數(shù),當(dāng)創(chuàng)建一個首先,它是一個構(gòu)造函數(shù),當(dāng)創(chuàng)建一個新對象時,系統(tǒng)自動調(diào)用它;其次,它新對象時,系統(tǒng)自動調(diào)用它;其次,它的特殊功能是將參數(shù)代表的對象逐域拷的特殊功能是將參數(shù)代表的對象逐域拷貝到新創(chuàng)建的對象中。即貝到新創(chuàng)建的對象中。即用一個已有對用一個已有對象初始化一個正在建立的
12、同類對象。象初始化一個正在建立的同類對象。 拷貝構(gòu)造函數(shù)的定義有兩種形式:系統(tǒng)拷貝構(gòu)造函數(shù)的定義有兩種形式:系統(tǒng)產(chǎn)生和用戶定義。產(chǎn)生和用戶定義。#include “iostream.h”class point int x,y;public: point(int vx,int vy) x=vx;y=vy; point(const point & p) x=p.x;y=p.y; void print() coutx“ “yendl;void main() point p1(10,20); /定義一個定義一個point類對象類對象p1 point p2(p1); /定義一個定義一個point類對象類
13、對象p2。此時,在定義對象。此時,在定義對象p2時調(diào)用的是類中自定義的時調(diào)用的是類中自定義的拷貝構(gòu)造函數(shù),值與拷貝構(gòu)造函數(shù),值與p1對象的相同。對象的相同。 point p3=p1; /也可以用賦值的方式使用拷貝構(gòu)造函數(shù)也可以用賦值的方式使用拷貝構(gòu)造函數(shù) p1.print(); p2.print(); p3.print()對象指針:對象指針:new和和delete的使用的使用#include class CTest private: int a,b; public: CTest(int x,int y=1)a=x;b=y;coutConab; CTest()coutDesab; void di
14、splay()couta bX=X; this-Y=Y; this-H=H; this-W=w; private: int X,Y,H,W; /類中成員數(shù)據(jù)類中成員數(shù)據(jù)對象數(shù)組的定義及初始化和訪問#include class CTest private: int a,b; public: CTest(int x,int y=1)a=x;b=y; void display()couta bendl;void main()CTest array3=CTest(2),CTest(3,3),5;for(int i=0;i3;i+) arrayi.display(); 對象做函數(shù)參數(shù) 對象作為類的數(shù)據(jù)成
15、員 C+中,類對象常常可以作為另一個類的中,類對象常常可以作為另一個類的成員。使用對象成員著重要注意的問題成員。使用對象成員著重要注意的問題是一個類的內(nèi)部初始化問題。是一個類的內(nèi)部初始化問題。友元 為什么引入友元 友元函數(shù) 友元類繼承與派生:派生類定義、派生類成員重定義派生類的構(gòu)造函數(shù)的定義():):(),),() () ;派生類定義對象時構(gòu)造函數(shù)、析構(gòu)函數(shù)執(zhí)行順序(1)調(diào)用基類的構(gòu)造函數(shù),調(diào)用順序按照)調(diào)用基類的構(gòu)造函數(shù),調(diào)用順序按照它們繼承時說明的順序。它們繼承時說明的順序。(2)調(diào)用對象成員的構(gòu)造函數(shù),調(diào)用順序)調(diào)用對象成員的構(gòu)造函數(shù),調(diào)用順序按照它們在類中說明的順序。按照它們在類中說明
16、的順序。(3)派生類構(gòu)造函數(shù)體中的內(nèi)容。)派生類構(gòu)造函數(shù)體中的內(nèi)容。 析夠時先執(zhí)行派生類的析構(gòu)函數(shù),再執(zhí)行析夠時先執(zhí)行派生類的析構(gòu)函數(shù),再執(zhí)行基類的析構(gòu)函數(shù),其順序與執(zhí)行構(gòu)造函數(shù)基類的析構(gòu)函數(shù),其順序與執(zhí)行構(gòu)造函數(shù)時的順序正好相反。時的順序正好相反?;惻c派生類之間的轉(zhuǎn)換 賦值兼容規(guī)則是指:在公有派生的情況下,一個派生類的賦值兼容規(guī)則是指:在公有派生的情況下,一個派生類的對象可用于基類對象適用的地方。賦值兼容規(guī)則有三種情對象可用于基類對象適用的地方。賦值兼容規(guī)則有三種情況(假定類況(假定類derived由類由類base派生)派生) :(1)派生類的對象可以賦值給基類的對象。)派生類的對象可以賦
17、值給基類的對象。derived d;base b;b=d;(2)派生類的對象可以初始化基類的引用。)派生類的對象可以初始化基類的引用。derived d;base& b=d;(3)派生類的對象的地址可以賦給指向基類的指針。)派生類的對象的地址可以賦給指向基類的指針。derived d;base *pb=&d; 虛函數(shù)與派生類純虛函數(shù)與抽象類(例題、實驗計算面積或體積)運(yùn)算符重載( + - * / = )友員、成員復(fù)數(shù)類、數(shù)組類(P149 例6.4)重載運(yùn)算符舉例函數(shù)模版#include template T min(T a,int n)int i;T minv=a0;for(i=1;iai) minv=ai;return minv;void main()int a=1,3,0,2,7,6,4,5,2;double b=1.2,-3.4,6.8,9,8;couta數(shù)組的最小值為:數(shù)組的最小值為:min(a,9) endl;coutb數(shù)組的最小值為:數(shù)組的最小值為
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 彩鋼板產(chǎn)品知識培訓(xùn)課件
- 活動效果跟蹤記錄表格(事件類)
- 建筑工地施工安全管理與預(yù)案
- 電子廢物回收與處理協(xié)議
- 物業(yè)管理服務(wù)具體協(xié)議
- 數(shù)據(jù)管理中心辦公場所表格(特定公司情境)
- 麻疹的防治知識培訓(xùn)課件
- 酒店防汛知識培訓(xùn)課件
- 小學(xué)低年級繪本故事解讀
- 新能源充電站運(yùn)營與管理手冊
- 企業(yè)內(nèi)部系統(tǒng)使用權(quán)限規(guī)范
- 2024年亳州職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫
- 2025年旅行與旅游的未來:擁抱可持續(xù)與包容性增長報告(英文版)-世界經(jīng)濟(jì)論壇
- 學(xué)校跟移動公司合作協(xié)議
- 茶館項目創(chuàng)業(yè)計劃書
- 化工生產(chǎn)中的智能優(yōu)化
- 《西方經(jīng)濟(jì)學(xué)》(上冊)課程教案
- 移動政企部年終總結(jié)
- 施工合同協(xié)議書樣本
- 醫(yī)學(xué)綜合題庫(含答案)
- 工會一函兩書模板
評論
0/150
提交評論