




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、5類與對(duì)象習(xí)題第四章 類與對(duì)象習(xí)題一. 基本概念與基礎(chǔ)知識(shí)自測(cè)題4.1 填空題5.1.1 引入類定義的關(guān)鍵字是 (1) 。類的成員函數(shù)通常指定為 (2) ,類的數(shù)據(jù)成員通常指定為 (3) 。指定為 (4) 的類成員可以在類對(duì)象所在域中的任何位置訪問(wèn)它們。通常用類的 (5) 成員表示類的屬性,用類的 (6) 成員表示類的操作。答案:(1) class(2) 公有的public(3) 私有的private(4) 公有的public(5) 數(shù)據(jù)(6) 函數(shù)4.1.2 類的訪問(wèn)限定符包括 (1) 、 (2) 和 (3) 。私有數(shù)據(jù)通常由(4) 函數(shù)來(lái)訪問(wèn)(讀和寫(xiě))。這些函數(shù)統(tǒng)稱為 (5) 。答案:(1
2、) public(公有的)(2) private(私有的)(3) protected(保護(hù)的)(4) 公有的成員函數(shù)(5) 類的接口4.1.3 通常在邏輯上,同一類的每個(gè)對(duì)象都有 (1) 代碼區(qū),用以存儲(chǔ)成員函數(shù)。而在物理上通常只有 (2) 代碼區(qū)。只有在 (3) 定義,并 (4) 的函數(shù)和加了關(guān)鍵字 (5) 的函數(shù)例外。答案:(1) 獨(dú)立的(2) 共用的(3) 在類說(shuō)明中(4) 不包括循環(huán)等復(fù)雜結(jié)構(gòu)(5) inline4.1.4 C+中支持三種域: (1) 、 (2) 、 (3) 。函數(shù)域被包括在 (4) 中,全局域被包括在 (5) 中。using指示符以關(guān)鍵字using開(kāi)頭,后面是關(guān)鍵字
3、(6) ,最后是 (7) 。這樣表示以后在該名字空間中所有成員都 (8) 。如不使用using指示符則在使用時(shí)要加:,稱為 (9) 運(yùn)算符。答案:(1) 局部域(local scope)(2) 名字空間域(namespace scope)(3) 類域(class scope)(4) 局部域(5) 名字空間域(6) namespace(7) 名字空間名(8) 可以直接被使用(9) 域4.1.5 引用通常用作函數(shù)的 (1) 和 (2) 。對(duì)數(shù)組只能引用 (3)不能引用 (4) 。答案:(1) 參數(shù)(2) 返回值(3) 數(shù)組元素(4) 數(shù)組名本身4.1.6 構(gòu)造函數(shù)的任務(wù)是 (1) 。構(gòu)造函數(shù)無(wú) (
4、2) 。類中可以有 (3) 個(gè)構(gòu)造函數(shù),它們由 (4) 區(qū)分。如果類說(shuō)明中沒(méi)有給出構(gòu)造函數(shù),則C+編譯器會(huì) (5) ??截悩?gòu)造函數(shù)的參數(shù)是 (6) ,當(dāng)程序沒(méi)有給出復(fù)制構(gòu)造函數(shù)時(shí),系統(tǒng)會(huì)自動(dòng)提供 (7) 支持,這樣的復(fù)制構(gòu)造函數(shù)中每個(gè)類成員 (8) 。答案:(1) 初始化數(shù)據(jù)成員(2) 函數(shù)返回類型說(shuō)明(3) 多(4) 不同的參數(shù)表(5) 自動(dòng)給出一個(gè)默認(rèn)的構(gòu)造函數(shù)(6) 同一類對(duì)象的引用(7) 默認(rèn)的的復(fù)制構(gòu)造函,稱為默認(rèn)的按成員語(yǔ)義支持。(8) 被依次復(fù)制4.1.7 一個(gè)類有 (1) 個(gè)析構(gòu)函數(shù)。 (2) 時(shí),系統(tǒng)會(huì)自動(dòng)調(diào)用析構(gòu)函數(shù)。答案:(1) 一(2) 對(duì)象注銷時(shí)4.1.8 運(yùn)算符重載
5、時(shí),其函數(shù)名由 (1) 構(gòu)成。成員函數(shù)重載雙目運(yùn)算符時(shí),左操作數(shù)是 (2) ,右操作數(shù)是 (3) 。答案:(1) 關(guān)鍵字operator和該運(yùn)算符(2) 對(duì)象(3) 該函數(shù)的參數(shù)4.1.9 面向過(guò)程的程序設(shè)計(jì)中程序模型描述為 (1) ,面向?qū)ο蟪绦蛟O(shè)計(jì)的程序模型可描述為 (2) 。答案:(1)“程序=算法+數(shù)據(jù)結(jié)構(gòu)”。其數(shù)據(jù)與數(shù)據(jù)處理是分離的。(2)程序=(對(duì)象+對(duì)象+對(duì)象)+消息;對(duì)象=(算法+數(shù)據(jù)結(jié)構(gòu))。面向?qū)ο笤O(shè)計(jì)將數(shù)據(jù)和對(duì)數(shù)據(jù)的操作方法放在一起,形成一個(gè)相對(duì)獨(dú)立的整體對(duì)象(Object),并通過(guò)簡(jiǎn)單的接口與外部聯(lián)系。對(duì)象之間通過(guò)消息(Message)進(jìn)行通訊。4.2 簡(jiǎn)答題4.2.1
6、簡(jiǎn)單解釋什么是面向?qū)ο蟪绦蛟O(shè)計(jì)的封裝性。答:對(duì)象是一個(gè)封裝體,在其中封裝了該對(duì)象所具有的屬性和操作。對(duì)象作為獨(dú)立的基本單元,實(shí)現(xiàn)了將數(shù)據(jù)和數(shù)據(jù)處理相結(jié)合的思想。此外,封裝特性還體現(xiàn)在可以限制對(duì)象中數(shù)據(jù)和操作的訪問(wèn)權(quán)限,從而將屬性“隱藏”在對(duì)象內(nèi)部,對(duì)外只呈現(xiàn)一定的外部特性和功能。封裝性增加了對(duì)象的獨(dú)立性,C+通過(guò)建立數(shù)據(jù)類型類,來(lái)支持封裝和數(shù)據(jù)隱藏。一個(gè)定義完好的類一旦建立,就可看成完全的封裝體,作為一個(gè)整體單元使用,用戶不需要知道這個(gè)類是如何工作的,而只需要知道如何使用就行。另一方面,封裝增加了數(shù)據(jù)的可靠性,保護(hù)類中的數(shù)據(jù)不被類以外的程序隨意使用。這兩個(gè)優(yōu)點(diǎn)十分有利于程序的調(diào)試和維護(hù)。4.2
7、.3 為什么說(shuō)類與對(duì)象的概念是客觀世界的反映?答:客觀世界的事物都具有某些屬性和行為(或操作),具有相同屬性和行為的事物可以歸屬于一類,用分類的方法可以提高認(rèn)識(shí)事物的效率。C+中定義的類則是通過(guò)抽象的方法將某一類事物共有的靜態(tài)特征(屬性)和動(dòng)態(tài)特征(行為)概括出來(lái)并加以描述,而對(duì)象是類的具體實(shí)現(xiàn),所以說(shuō)類與對(duì)象的概念是客觀世界的反映。4.2.4 什么叫類域?為什么說(shuō)類域是抽象的?答:類域是類體所包括的范圍。每個(gè)類定義都引入了一個(gè)獨(dú)立的類域,在類域中說(shuō)明的標(biāo)識(shí)符僅在該類的類域中有效。由于類只是一個(gè)說(shuō)明,看上去有數(shù)據(jù),有函數(shù),有類型定義,但是它并非實(shí)體,不分配內(nèi)存,當(dāng)然也不能運(yùn)行。所以說(shuō)類域是抽象
8、的。4.2.5 引用作為函數(shù)參數(shù)時(shí)為什么能實(shí)現(xiàn)兩個(gè)實(shí)參之間的數(shù)據(jù)交換?為什么對(duì)應(yīng)實(shí)參不能為引用?為什么返回值為引用的函數(shù)可以作為左值?答:引用變量是其關(guān)聯(lián)變量的別名,二者在內(nèi)存中占據(jù)同一個(gè)存儲(chǔ)單元。在一個(gè)以引用作為參數(shù)的函數(shù)中,交換兩個(gè)參數(shù)的值,實(shí)際上就是交換兩個(gè)實(shí)參的值。如果函數(shù)的參數(shù)是引用,調(diào)用時(shí)需要取得實(shí)參的地址,而實(shí)參如果已經(jīng)是一個(gè)地址,再進(jìn)行引用將產(chǎn)生錯(cuò)誤,故對(duì)應(yīng)實(shí)參不能為引用。函數(shù)返回引用實(shí)際是指明(返回)了相應(yīng)的關(guān)聯(lián)變量,所以聲明返回值為引用的函數(shù)實(shí)際上是將關(guān)聯(lián)變量作為左值參與運(yùn)算。4.2.6 什么是缺省的構(gòu)造函數(shù)?缺省的構(gòu)造函數(shù)最多可以有多少個(gè)?答:如果在類定義中不顯式地定義構(gòu)
9、造函數(shù),C+編譯器會(huì)自動(dòng)產(chǎn)生一個(gè)缺省的構(gòu)造函數(shù),不過(guò)該函數(shù)不做具體的初始化工作。只要構(gòu)造函數(shù)是無(wú)參的或者只要各參數(shù)均有缺省值的,C+編譯器都認(rèn)為是缺省的構(gòu)造函數(shù)。缺省的構(gòu)造函數(shù)只能有一個(gè)。4.2.7 拷貝構(gòu)造函數(shù)用于哪三個(gè)方面?答:(1) 用類的一個(gè)對(duì)象去初始化該類的另一個(gè)對(duì)象時(shí)使用。(2) 當(dāng)函數(shù)的形參是類的對(duì)象,調(diào)用函數(shù)時(shí),進(jìn)行形參與實(shí)參結(jié)合時(shí)使用。(3) 當(dāng)函數(shù)的返回值是類對(duì)象,函數(shù)執(zhí)行結(jié)束返回調(diào)用者時(shí)使用。4.2.8 寫(xiě)出含有對(duì)象成員的類的構(gòu)造函數(shù)的格式,并做簡(jiǎn)單說(shuō)明。答:C+中對(duì)含對(duì)象成員的類對(duì)象的構(gòu)造函數(shù)有固定的格式:類名:構(gòu)造函數(shù)名(參數(shù)總表):對(duì)象成員1(參數(shù)名表1),對(duì)象成員
10、2(參數(shù)名表2),對(duì)象成員n(參數(shù)名表n)冒號(hào)后用逗號(hào)隔開(kāi)的是要初始化的對(duì)象成員,附在后面的參數(shù)名表1,參數(shù)名表n依次為調(diào)用相應(yīng)對(duì)象成員所屬的構(gòu)造函數(shù)時(shí)的實(shí)參表。這些表中的參數(shù)通常來(lái)自冒號(hào)前的參數(shù)總表,但沒(méi)有類型名。4.2.9 所有類對(duì)象未重載的賦值運(yùn)算符“”是怎樣工作的?為什么它可以進(jìn)行連續(xù)賦值?答:對(duì)所有的類對(duì)象,未重載的賦值運(yùn)算符“ =”稱作缺省的按成員拷貝賦值操作符,同類對(duì)象之間可以用“=”直接拷貝。因?yàn)槿笔〉馁x值操作返回一個(gè)對(duì)象的引用,所以它可以進(jìn)行連續(xù)賦值。4.2.10 為什么在友元函數(shù)的函數(shù)體內(nèi)訪問(wèn)對(duì)象成員時(shí),必須用對(duì)象名加運(yùn)算符“”再加對(duì)象成員名?答:友元函數(shù)不是類的成員函數(shù),
11、在函數(shù)體中訪問(wèn)對(duì)象的成員,必須用對(duì)象名加運(yùn)算符“.”加對(duì)象成員名。這一點(diǎn)和一般函數(shù)一樣。4.2.12 類的靜態(tài)數(shù)據(jù)成員與函數(shù)中的靜態(tài)成員有何異同?答:類的靜態(tài)成員為其所有對(duì)象共享,不管有多少對(duì)象,靜態(tài)成員只有一份存于公用內(nèi)存中,為該類所有對(duì)象公用。函數(shù)中的靜態(tài)變量也位于公用內(nèi)存中,不隨函數(shù)調(diào)用而重新分配,所以總是保留上次進(jìn)入并執(zhí)行該函數(shù)后留下的信息。4.2.13 C+中結(jié)構(gòu)、聯(lián)合與類三者間有何異同?答:在C+中結(jié)構(gòu)(structure)與類幾乎是完全一樣的類型,差別僅僅在于缺省情況下結(jié)構(gòu)的成員為公有的。聯(lián)合(union)是C+的導(dǎo)出數(shù)據(jù)類型,在語(yǔ)法與功能上類似于結(jié)構(gòu),二者的區(qū)別是:結(jié)構(gòu)變量的各
12、成員同時(shí)被分配了各自獨(dú)立的內(nèi)存區(qū),而聯(lián)合變量的各個(gè)成員的存儲(chǔ)開(kāi)始地址都相同,所以在任一時(shí)刻聯(lián)合變量只能存儲(chǔ)一個(gè)成員。4.2.14 對(duì)象的第一特征是封裝,那么由對(duì)象組成的面向?qū)ο蟮某绦蛟鯓咏⒏鲗?duì)象之間的有效聯(lián)系?面向?qū)ο蟪绦虻慕M織與面向過(guò)程有什么不同?答:因?yàn)閷?duì)象的操作主要用來(lái)響應(yīng)外來(lái)消息并為其他對(duì)象提供服務(wù),所以面向?qū)ο蟮某绦蚶孟鬟f機(jī)制來(lái)建立各對(duì)象之間的有效聯(lián)系,協(xié)調(diào)各對(duì)象的運(yùn)行。一個(gè)對(duì)象可以向其他對(duì)象發(fā)送消息以請(qǐng)求服務(wù),也可以響應(yīng)其他對(duì)象傳來(lái)的消息,完成自身固有的某些操作,從而服務(wù)于其他對(duì)象。面向過(guò)程的程序是模塊化的,模塊的組織具有分層結(jié)構(gòu)特點(diǎn),層與層之間是調(diào)用關(guān)系。面向?qū)ο蟪绦蚴怯?/p>
13、一個(gè)個(gè)封裝的對(duì)象組成,而對(duì)象是由緊密結(jié)合在一起的算法和數(shù)據(jù)結(jié)構(gòu)組成。對(duì)象之間是相互請(qǐng)求和相互協(xié)作的關(guān)系。4.2.16 類的成員函數(shù)在什么情況下應(yīng)該定義為私有的?這樣做的目的是什么?答:除接口函數(shù)和創(chuàng)建本類對(duì)象的構(gòu)造函數(shù)和撤消該對(duì)象的析構(gòu)函數(shù)外。其余成員函數(shù)應(yīng)該定義為私有的,這是開(kāi)發(fā)類時(shí)故意對(duì)外隱蔽起來(lái)的操作,而這些往往是最復(fù)雜最關(guān)鍵的部分。類中故意的隱藏也為以后的升級(jí)擴(kuò)展留下了余地,只要接口不變,內(nèi)部再變,也不必修改原來(lái)的程序,就象MFC(微軟基礎(chǔ)類)升級(jí)后,由MFC底層類所編的程序完全不必修改,自動(dòng)升級(jí)。二編程與綜合練習(xí)題4.3 構(gòu)造一個(gè)日期時(shí)間類(Timedate),數(shù)據(jù)成員包括年、月、日
14、和時(shí)、分、秒,函數(shù)成員包括設(shè)置日期時(shí)間和輸出時(shí)間,其中年、月請(qǐng)用枚舉類型,并完成測(cè)試。(包括用成員函數(shù)和用普通函數(shù))4.4 設(shè)計(jì)并測(cè)試一個(gè)矩形類(Rectangle),屬性為矩形的左下與右上角的坐標(biāo),矩形水平放置。操作為計(jì)算矩形周長(zhǎng)與面積。測(cè)試包括用成員函數(shù)和普通函數(shù)。4.5 定義一個(gè)圓類(Circle),屬性為半徑(radius)、圓周長(zhǎng)和面積,操作為輸入半徑并計(jì)算周長(zhǎng)、面積,輸出半徑、周長(zhǎng)和面積。要求定義構(gòu)造函數(shù)(以半徑為參數(shù),缺省值為0,周長(zhǎng)和面積在構(gòu)造函數(shù)中生成)和拷貝構(gòu)造函數(shù)。4.6 設(shè)計(jì)一個(gè)學(xué)校在冊(cè)人員類(Person)。數(shù)據(jù)成員包括:身份證號(hào)(IdPerson),姓名(Name)
15、,性別(Sex),生日(Birthday)和家庭住址(HomeAddress)。成員函數(shù)包括人員信息的錄入和顯示。還包括構(gòu)造函數(shù)與拷貝構(gòu)造函數(shù)。設(shè)計(jì)一個(gè)合適的初始值。4.7 對(duì)上面4道題中的類對(duì)象的數(shù)據(jù),由友元函數(shù)來(lái)進(jìn)行訪問(wèn)。并對(duì)比友元函數(shù)、成員函數(shù)和普通函數(shù)使用上的不同。4.8 為復(fù)數(shù)類(Complex)增加重載的運(yùn)算符-、-=、*=和/=。設(shè)+為實(shí)部和虛部各自增一,亦請(qǐng)重載前置與后置+運(yùn)算符。分別使用成員函數(shù)和友元函數(shù)各做一遍。并測(cè)試。4.10 內(nèi)置數(shù)據(jù)類型可以進(jìn)行類型強(qiáng)制轉(zhuǎn)換,類也可以進(jìn)行同樣的轉(zhuǎn)換,這是通過(guò)定義類型轉(zhuǎn)換函數(shù)實(shí)現(xiàn)的。它只能是類的成員函數(shù),不能是友元函數(shù)。格式為: 類名:o
16、perator 轉(zhuǎn)換后的數(shù)據(jù)類型( ) 如:operator float()是轉(zhuǎn)換為浮點(diǎn)數(shù)的成員函數(shù)。使用時(shí)的格式為:float(對(duì)象名); 或 (float) 對(duì)象名; 定義人民幣類,數(shù)據(jù)成員包括:圓、角、分,均為整型。類型轉(zhuǎn)換函數(shù)將人民幣類強(qiáng)制轉(zhuǎn)換為浮點(diǎn)數(shù),以圓為單位。并編程進(jìn)行檢驗(yàn)。解:本題的解答未考慮角、分最多為9。類型強(qiáng)制轉(zhuǎn)換的兩種格式編程時(shí)毋需考慮,自動(dòng)實(shí)現(xiàn)。#include<iostream>using namespace std;class IntRMB /人民幣類 private: int IYuan; int Jiao; int Fen; public: Int
17、RMB(int y=0,int j=0,int f=0); /構(gòu)造函數(shù) void print(); /數(shù)據(jù)輸出函數(shù) operator float(); /浮點(diǎn)數(shù)類型轉(zhuǎn)換函數(shù);IntRMB:IntRMB(int y,int j,int f)/構(gòu)造函數(shù)IYuan=y;Jiao=j;Fen=f;IntRMB:operator float() float temp; temp=float(IYuan + (Jiao/10.0) + (Fen/100.0); return temp;void IntRMB:print() cout <<IYuan << "元"
18、 <<Jiao << "角" <<Fen <<"分" <<endl;int main()float a;IntRMB Im(10,25,3);cout << "*轉(zhuǎn)換前*" <<endl;Im.print();a=float(Im); /使用重載的類型關(guān)鍵字進(jìn)行強(qiáng)制類型轉(zhuǎn)換cout << "*轉(zhuǎn)換后*" <<endl;cout<<a<<"圓"<<endl;a=(float)Im; /使用重載的類型關(guān)鍵字進(jìn)行強(qiáng)制類型轉(zhuǎn)換cout << "*轉(zhuǎn)換后*" <<e
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025屆浙江省永康市龍川學(xué)校七年級(jí)數(shù)學(xué)第一學(xué)期期末質(zhì)量跟蹤監(jiān)視模擬試題含解析
- 教育政策在減少教育差距中的作用
- 春游航空基地活動(dòng)方案
- 大連藝術(shù)學(xué)院《英語(yǔ)寫(xiě)作(二)》2023-2024學(xué)年第一學(xué)期期末試卷
- 西華大學(xué)《水工鋼筋混凝土結(jié)構(gòu)及鋼結(jié)構(gòu)》2023-2024學(xué)年第一學(xué)期期末試卷
- 舊衣捐贈(zèng)儀式活動(dòng)方案
- 旅游茶話會(huì)活動(dòng)方案
- 河南省鄭州市鄭州外國(guó)語(yǔ)2025屆七年級(jí)數(shù)學(xué)第一學(xué)期期末綜合測(cè)試試題含解析
- 云南外事外語(yǔ)職業(yè)學(xué)院《口腔內(nèi)科學(xué)實(shí)訓(xùn)一》2023-2024學(xué)年第一學(xué)期期末試卷
- 肇慶醫(yī)學(xué)高等專科學(xué)?!秲?nèi)環(huán)境穩(wěn)態(tài)3》2023-2024學(xué)年第一學(xué)期期末試卷
- 光伏項(xiàng)目運(yùn)維服務(wù)承包合同5篇
- 流產(chǎn)的中西醫(yī)結(jié)合治療
- 陣發(fā)性室上性心動(dòng)過(guò)速 護(hù)理查房
- 湖南省永州市2023-2024學(xué)年高一下學(xué)期7月期末質(zhì)量監(jiān)測(cè)數(shù)學(xué)試卷
- 五育并舉-立德樹(shù)人始于行潤(rùn)品育心成于思
- 安全策略優(yōu)化
- ANSYS Fluent:湍流模型理論與應(yīng)用.Tex.header
- 《道德經(jīng)》的智慧啟示智慧樹(shù)知到期末考試答案章節(jié)答案2024年中國(guó)海洋大學(xué)
- 老公出軌保證書(shū)范文
- 【正版授權(quán)】 ISO 7887:1994 EN Water quality - Examination and determination of colour
- 獨(dú)家供應(yīng)商協(xié)議
評(píng)論
0/150
提交評(píng)論