臺州學院計算機系面向對象程序設計(C++)_第1頁
臺州學院計算機系面向對象程序設計(C++)_第2頁
臺州學院計算機系面向對象程序設計(C++)_第3頁
臺州學院計算機系面向對象程序設計(C++)_第4頁
臺州學院計算機系面向對象程序設計(C++)_第5頁
已閱讀5頁,還剩62頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、臺州學院計算機系面向對象程序設計(C+)1題型:題型:l選擇:選擇:10題題2分,共分,共20分分l填空:填空:10題題2分,共分,共20分分l閱讀程序閱讀程序(4個個):10空空2分,共分,共20分分l問答題:問答題:2題題10分,共分,共20分分l程序設計題:程序設計題:1題,共題,共20分分臺州學院計算機系面向對象程序設計(C+)2 C+的新特性的新特性 簡單的輸入輸出簡單的輸入輸出 帶默認參數(shù)的函數(shù)帶默認參數(shù)的函數(shù)/內(nèi)聯(lián)函數(shù)內(nèi)聯(lián)函數(shù)/重載函數(shù)重載函數(shù) 引用引用 const說明符說明符 動態(tài)分配內(nèi)存(動態(tài)分配內(nèi)存(new/delete) 面向對象的三大特性:面向對象的三大特性: 1. 封

2、裝:將有關的數(shù)據(jù)、操作代碼封裝:將有關的數(shù)據(jù)、操作代碼封裝成類封裝成類 2. 繼承:保持已有類的特性而構造新類的過程繼承:保持已有類的特性而構造新類的過程 3. 多態(tài):在基類中聲明成員函數(shù)為虛函數(shù),根據(jù)需要在派多態(tài):在基類中聲明成員函數(shù)為虛函數(shù),根據(jù)需要在派生類中重新定義與基類同名的成員。用基類指針或基類引生類中重新定義與基類同名的成員。用基類指針或基類引用來訪問各派生類中的同名函數(shù)。實現(xiàn)一個接口,多種方用來訪問各派生類中的同名函數(shù)。實現(xiàn)一個接口,多種方法法臺州學院計算機系面向對象程序設計(C+)3 面向對象的三個主要特性:封裝,繼承,多態(tài)面向對象的三個主要特性:封裝,繼承,多態(tài) 熟悉熟悉VC

3、集成環(huán)境集成環(huán)境 熟悉簡單熟悉簡單C+程序的基本結構程序的基本結構臺州學院計算機系面向對象程序設計(C+)4 各種數(shù)據(jù)類型及其在內(nèi)存中所占用的字節(jié)數(shù)各種數(shù)據(jù)類型及其在內(nèi)存中所占用的字節(jié)數(shù) 變量和常量變量和常量 常量:編譯預處理命令和使用常量:編譯預處理命令和使用const常量說明符常量說明符#define PI 3.14const float = 3.14; 各種運算符和表達式各種運算符和表達式 優(yōu)先級優(yōu)先級/結合律結合律 類型的自動轉換和強制轉換類型的自動轉換和強制轉換 sizeof,自增(減),條件等運算符,自增(減),條件等運算符臺州學院計算機系面向對象程序設計(C+)5 選擇結構選擇結

4、構 循環(huán)結構循環(huán)結構 while do while for break/continue臺州學院計算機系面向對象程序設計(C+)6 函數(shù)的定義和調用函數(shù)的定義和調用 函數(shù)原型說明函數(shù)原型說明 帶默認參數(shù)的函數(shù)帶默認參數(shù)的函數(shù) 有默認值的參數(shù)靠右面,參數(shù)傳值順序從左到右有默認值的參數(shù)靠右面,參數(shù)傳值順序從左到右 重載和默認參數(shù)同時使用的歧義性,一般兩者不能同時使用重載和默認參數(shù)同時使用的歧義性,一般兩者不能同時使用 內(nèi)聯(lián)函數(shù)內(nèi)聯(lián)函數(shù) 重載函數(shù)重載函數(shù)臺州學院計算機系面向對象程序設計(C+)7下面參數(shù)有默認值的函數(shù),格式正下面參數(shù)有默認值的函數(shù),格式正確的是?確的是?1. int add(int

5、a = 0, int b,int c) return a+b+c; 2. int add(int a, int b=0,int c)return a+b+c; 3. int add(int a, int b,int c=0)return a+b+c;4. int add(int a = 0, int b=0,int c)return a+b+c;5. int add(int a = 0, int b,int c=0)return a+b+c;6. int add(int a, int b=0,int c=0)return a+b+c; 臺州學院計算機系面向對象程序設計(C+)81. int a

6、dd (int a, int b); 與與 void add (int a, int b);2. int abb (int a, int b); 與與 void add (int a, int b);3. int add (int a, int b); 與與 int add (int a);4. int add (int a, float b); 與與 int add (float a, int b);5. int add (int a, int b); 與與 float add (float a, float b);6. int add (int a, int b); 與與 int add

7、(int x, int y); 下面是重載函數(shù)的是?下面是重載函數(shù)的是?臺州學院計算機系面向對象程序設計(C+)9 下面的函數(shù)聲明中,為下面的函數(shù)聲明中,為void BC(int a,int b); 的重載的重載函數(shù)的是函數(shù)的是 A. int BC(int a,int b); B. void BC(int a,char b); C. float BC(int a,int b,int c=0); D. void BC(int a,int b=0); 臺州學院計算機系面向對象程序設計(C+)10 作用域作用域 塊塊/局部局部 函數(shù)原型函數(shù)原型 文件文件 函數(shù)函數(shù) 類類 存儲類存儲類 自動自動 寄存

8、器寄存器 靜態(tài)靜態(tài) 外部外部重點:重點:局部變量局部變量/ /全局變量全局變量/ /靜態(tài)變量靜態(tài)變量臺州學院計算機系面向對象程序設計(C+)11 數(shù)組數(shù)組/指針指針/引用的定義及初始化引用的定義及初始化 數(shù)組與指針數(shù)組與指針 數(shù)組與函數(shù)數(shù)組與函數(shù) 數(shù)組作為函數(shù)的參數(shù)數(shù)組作為函數(shù)的參數(shù) 返回值為數(shù)組返回值為數(shù)組 指針與函數(shù)指針與函數(shù) 指針作為函數(shù)參數(shù)指針作為函數(shù)參數(shù) 返回值為指針返回值為指針 指向函數(shù)的指針變量指向函數(shù)的指針變量 指針與引用指針與引用 引用作為函數(shù)參數(shù)引用作為函數(shù)參數(shù) 返回值為引用返回值為引用臺州學院計算機系面向對象程序設計(C+)12臺州學院計算機系面向對象程序設計(C+)13

9、臺州學院計算機系面向對象程序設計(C+)14臺州學院計算機系面向對象程序設計(C+)15 const與指針與指針 指向常量的指針指向常量的指針: *p是常量,不能修改是常量,不能修改 const float *p; 或者或者 float const *p; 常指針:常指針:p是常量,必須初始化,不能修改是常量,必須初始化,不能修改 float a; float * const p = &a; 指向常量的常指針指向常量的常指針: *p和和p都是常量,不能修改都是常量,不能修改 float a; const float * const p = &a;臺州學院計算機系面向對象程序設計(C+)16 n

10、ew與與delete類型類型 指針變量指針變量 new 類型類型(初值初值)delete 指針變量指針變量 or delete 指針變量指針變量例如:例如:char *p = new char ; delete p; int *p = new int6; delete p;臺州學院計算機系面向對象程序設計(C+)17 動態(tài)分配內(nèi)存的優(yōu)點:用變量決定內(nèi)存大小動態(tài)分配內(nèi)存的優(yōu)點:用變量決定內(nèi)存大小char a5 ; / 定義包含定義包含5個元素的數(shù)組個元素的數(shù)組ad = 5; char arrd; / 錯誤錯誤, 數(shù)組大小必須是常量數(shù)組大小必須是常量char * p = new char 5;/

11、動態(tài)開辟動態(tài)開辟5個個char內(nèi)存內(nèi)存int len = 5; char * p = new char len; / 正確正確臺州學院計算機系面向對象程序設計(C+)18 類的定義及類成員的訪問屬性類的定義及類成員的訪問屬性 public: 類內(nèi)、類外類內(nèi)、類外 protected:類內(nèi)、派生類類內(nèi)、派生類 private:類內(nèi)類內(nèi)類內(nèi):類內(nèi)成員,通常利用成員函數(shù)類內(nèi):類內(nèi)成員,通常利用成員函數(shù)類外:類外:通過對象名,指向對象的指針,對象的引用通過對象名,指向對象的指針,對象的引用 構造函數(shù)和析構函數(shù)的定義和特點構造函數(shù)和析構函數(shù)的定義和特點 拷貝構造函數(shù)(拷貝構造函數(shù)(參數(shù)通常為對象的常引用

12、參數(shù)通常為對象的常引用)(深拷貝,淺拷貝)(深拷貝,淺拷貝) 靜態(tài)成員:靜態(tài)數(shù)據(jù)成員,靜態(tài)成員函數(shù)靜態(tài)成員:靜態(tài)數(shù)據(jù)成員,靜態(tài)成員函數(shù) 友元:友元類,友元函數(shù)友元:友元類,友元函數(shù) this指針:指向調用成員函數(shù)的當前對象指針:指向調用成員函數(shù)的當前對象 對象作為函數(shù)參數(shù)的三種形式對象作為函數(shù)參數(shù)的三種形式 子對象:對象作為類成員(構造函數(shù)調用順序)子對象:對象作為類成員(構造函數(shù)調用順序)臺州學院計算機系面向對象程序設計(C+)19 靜態(tài)成員歸本類所有,或者說是歸本類所有對象所公有,并靜態(tài)成員歸本類所有,或者說是歸本類所有對象所公有,并不屬于某一個對象。不屬于某一個對象。 靜態(tài)數(shù)據(jù)成員不屬于

13、某一個對象。只要它在類中定義了,即使不定義靜態(tài)數(shù)據(jù)成員不屬于某一個對象。只要它在類中定義了,即使不定義對象,也為靜態(tài)數(shù)據(jù)成員分配空間,它可以被使用。對象,也為靜態(tài)數(shù)據(jù)成員分配空間,它可以被使用。 靜態(tài)數(shù)據(jù)成員只能在類體外初始化。形式為:靜態(tài)數(shù)據(jù)成員只能在類體外初始化。形式為:數(shù)據(jù)類型數(shù)據(jù)類型 類名類名 靜態(tài)數(shù)據(jù)成員名靜態(tài)數(shù)據(jù)成員名=初值;初值;例如:例如: int A: num = 0; 靜態(tài)成員函數(shù)并不屬于某一對象,它與任何對象都無關,因此它沒有靜態(tài)成員函數(shù)并不屬于某一對象,它與任何對象都無關,因此它沒有this指針。指針。 在在C+程序中,靜態(tài)成員函數(shù)主要用來訪問靜態(tài)數(shù)據(jù)成員。程序中,靜態(tài)

14、成員函數(shù)主要用來訪問靜態(tài)數(shù)據(jù)成員。 靜態(tài)數(shù)據(jù)成員和靜態(tài)成員函數(shù)都可以用對象名訪問,也可以用類名訪靜態(tài)數(shù)據(jù)成員和靜態(tài)成員函數(shù)都可以用對象名訪問,也可以用類名訪問問臺州學院計算機系面向對象程序設計(C+)20 友元:用友元:用friend聲明友元,可以訪問與其有好友關聲明友元,可以訪問與其有好友關系的類中的私有成員。系的類中的私有成員。 注意:注意:由于友元函數(shù)不是成員函數(shù),沒有由于友元函數(shù)不是成員函數(shù),沒有this指針,指針,所以在友元函數(shù)內(nèi)要通過對象名、對象的引用名訪所以在友元函數(shù)內(nèi)要通過對象名、對象的引用名訪問成員。對象或引用一般在友元函數(shù)的參數(shù)位置上問成員。對象或引用一般在友元函數(shù)的參數(shù)位

15、置上設置設置臺州學院計算機系面向對象程序設計(C+)21臺州學院計算機系面向對象程序設計(C+)22問題問題1:A aa; A 和和aa哪個占內(nèi)存空間?占多大?哪個占內(nèi)存空間?占多大?答:對象占內(nèi)存,類型不占,所以答:對象占內(nèi)存,類型不占,所以aa占內(nèi)存,所占內(nèi)存,所占內(nèi)存大小等于所有數(shù)據(jù)成員大小,即:占內(nèi)存大小等于所有數(shù)據(jù)成員大小,即:8個字個字節(jié)。節(jié)。臺州學院計算機系面向對象程序設計(C+)23問題問題2:A aa; 調用構造函數(shù)嗎?調用構造函數(shù)嗎?答:由于答:由于A類中用戶沒有自己定義任何構造函數(shù),類中用戶沒有自己定義任何構造函數(shù),所以系統(tǒng)自動給所以系統(tǒng)自動給A類生成一個無參、函數(shù)體為空

16、類生成一個無參、函數(shù)體為空的構造函數(shù)。執(zhí)行的構造函數(shù)。執(zhí)行A aa時,系統(tǒng)會自動調用系統(tǒng)時,系統(tǒng)會自動調用系統(tǒng)給給A類生成的類生成的 A() 函數(shù)函數(shù)臺州學院計算機系面向對象程序設計(C+)24問題問題3:A aa100; 調用幾次構造函數(shù)?調用幾次構造函數(shù)?答案:答案:100次,次,aa數(shù)組中每個元素都是數(shù)組中每個元素都是A類的對象,類的對象,即有即有100個個A類對象,每個對象調用一次構造函數(shù),類對象,每個對象調用一次構造函數(shù),共調用共調用100次。次。臺州學院計算機系面向對象程序設計(C+)25問題問題4:將:將 A aa; 改為改為 A *p = new A; 此句調用構造函此句調用構

17、造函數(shù)嗎?數(shù)嗎?答案:答案:new A ,先開辟,先開辟A類對象大小的內(nèi)存空間,類對象大小的內(nèi)存空間,即即8個字節(jié),然后調用系統(tǒng)提供的默認構造函數(shù)個字節(jié),然后調用系統(tǒng)提供的默認構造函數(shù)A() 臺州學院計算機系面向對象程序設計(C+)26臺州學院計算機系面向對象程序設計(C+)27 給給A類增加兩個構造函數(shù)類增加兩個構造函數(shù)臺州學院計算機系面向對象程序設計(C+)281. 系統(tǒng)調用構造函數(shù)系統(tǒng)調用構造函數(shù)A ( ) 2. 系統(tǒng)調用構造函數(shù)系統(tǒng)調用構造函數(shù)A(int a, int b)3. 系統(tǒng)不自動執(zhí)行構造函數(shù)系統(tǒng)不自動執(zhí)行構造函數(shù) 4. A類有兩個構造函數(shù),有歧義類有兩個構造函數(shù),有歧義臺州學

18、院計算機系面向對象程序設計(C+)291. 系統(tǒng)調用構造函數(shù)系統(tǒng)調用構造函數(shù)A ( ) 2. 系統(tǒng)調用構造函數(shù)系統(tǒng)調用構造函數(shù)A(int a, int b)3. 系統(tǒng)不自動執(zhí)行構造函數(shù)系統(tǒng)不自動執(zhí)行構造函數(shù) 4. A類有兩個構造函數(shù),有歧義類有兩個構造函數(shù),有歧義臺州學院計算機系面向對象程序設計(C+)301. 調用系統(tǒng)提供的無參默認構造函數(shù)調用系統(tǒng)提供的無參默認構造函數(shù)A( )2. 系統(tǒng)調用構造函數(shù)系統(tǒng)調用構造函數(shù)A(int a, int b)3. 沒有與沒有與aa匹配的構造函數(shù),有錯誤匹配的構造函數(shù),有錯誤 臺州學院計算機系面向對象程序設計(C+)31 給給A類增加兩個構造函數(shù)類增加兩個構

19、造函數(shù)臺州學院計算機系面向對象程序設計(C+)321. 系統(tǒng)調用構造函數(shù)系統(tǒng)調用構造函數(shù)A ( ) 2. 系統(tǒng)調用構造函數(shù)系統(tǒng)調用構造函數(shù)A(int a, int b)3. 系統(tǒng)不自動執(zhí)行構造函數(shù)系統(tǒng)不自動執(zhí)行構造函數(shù) 4. A類的兩個構造函數(shù)有歧義類的兩個構造函數(shù)有歧義臺州學院計算機系面向對象程序設計(C+)33問題問題10:在:在main中將中將aa 的的x設置為設置為0,格式正確的是:格式正確的是:1. setx(0); 2. x = 0; 3. aa.setx (0); 4. aa.x = 0; 臺州學院計算機系面向對象程序設計(C+)34問題問題11:在:在A類中添加成員函數(shù)類中添加

20、成員函數(shù)printt 打印輸出打印輸出x和和y,定義,定義對的是:對的是: void printt(A & t) cout t. x t.yendl;2. void printt( ) A t; cout t. x t.yendl;3. void printt( ) cout x yendl;4. void printt( ) cout aa.x aa.yendl;臺州學院計算機系面向對象程序設計(C+)35問題問題12:在:在A類中添加成員函數(shù)類中添加成員函數(shù)printt 打印輸出打印輸出x和和y,定義,定義對的是:對的是: void printt( ) coutgetx( ) gety( )endl;2. void printt( ) A t; cout t. gety( ) t.getx( )endl;3.void printt (A & t) cout t. getx( ) t.gety( )endl;4. void printt ( ) cout aa. getx( ) aa.gety( )endl;臺州學院計算機系面向對象程序設計(C+)36 問題問題13:在:在main中調用中調用printt打印輸出打印輸出aa的的x和和y,調用格式正確的是:調用格式正確的是: 1. aa. printt( ); 2. aa:printt( ); 3. A:pri

溫馨提示

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

評論

0/150

提交評論