freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

面向?qū)ο笳n后題答案-資料下載頁

2025-08-05 18:14本頁面
  

【正文】 成員函數(shù)時,編譯器根據(jù)this指針來確定應(yīng)該引用哪一個對象的數(shù)據(jù)成員。(5) 什么叫做拷貝構(gòu)造函數(shù)?拷貝構(gòu)造函數(shù)何時被調(diào)用?【問題解答】拷貝構(gòu)造函數(shù)是一種特殊的構(gòu)造函數(shù),它的作用是用一個已經(jīng)存在的對象去初始化另一個對象。為了保證所引用的對象不被修改,通常把引用參數(shù)聲明為const參數(shù)。在以下3種情況下,拷貝構(gòu)造函數(shù)都會被自動調(diào)用: ◆當(dāng)用類的一個對象去初始化該類的另一個對象時; ◆當(dāng)函數(shù)的形參是類的對象,進(jìn)行形參和實參結(jié)合時; ◆當(dāng)函數(shù)的返回值是類的對象,函數(shù)執(zhí)行完成返回調(diào)用者時。四、 程序分析題(寫出程序的輸出結(jié)果,并分析結(jié)果)(1) includeiostream using namespace std。class Test{private:int num。public:Test()。// 默認(rèn)構(gòu)造函數(shù)Test(int n)。 // 帶一個參數(shù)構(gòu)造函數(shù)}。Test∷Test(){ coutInit defaendl。num=0。}Test∷Test(int n){ coutInit nendl。num=n。}int main(){Test x[2]。// 語句1Test y(15)。 // 語句2return 0。}【輸出結(jié)果】Init defaInit defaInit 15【問題分析】本題主要考查構(gòu)造函數(shù)的調(diào)用時機(jī)和構(gòu)造函數(shù)的匹配問題。【要點提示】構(gòu)造函數(shù)在創(chuàng)建對象時被自動調(diào)用,具體調(diào)用哪個構(gòu)造函數(shù)將由編譯系統(tǒng)根據(jù)重載函數(shù)的匹配原則來確定。【結(jié)果分析】① 程序聲明了2個對象x和y,類中有2個構(gòu)造函數(shù)。② 程序首先執(zhí)行語句1,創(chuàng)建對象x,調(diào)用默認(rèn)構(gòu)造函數(shù)。由于對象x是對象數(shù)組,每個數(shù)組元素被創(chuàng)建時都要調(diào)用構(gòu)造函數(shù),所以默認(rèn)構(gòu)造函數(shù)被調(diào)用了2次,輸出第2行結(jié)果。程序接著執(zhí)行語句2,創(chuàng)建對象y,調(diào)用帶一個參數(shù)的構(gòu)造函數(shù),輸出第3行結(jié)果。(2) includeiostream using namespace std。class Xx{private:int num。public:Xx(int x){num=x。} // 構(gòu)造函數(shù)~Xx(){coutdst numendl。} // 析構(gòu)函數(shù)}。int main(){Xx w(5)。 // 語句1coutExit mainendl。 // 語句2return 0。}【輸出結(jié)果】Exit maindst 5【問題分析】本題主要考查析構(gòu)函數(shù)的調(diào)用時機(jī)。【要點提示】析構(gòu)函數(shù)在釋放對象時被自動調(diào)用?!窘Y(jié)果分析】① 程序聲明了一個對象w。② 程序首先執(zhí)行語句1,創(chuàng)建對象w,調(diào)用構(gòu)造函數(shù),num得到初值5。程序接著執(zhí)行語句2,輸出第1行結(jié)果。當(dāng)程序結(jié)束時,釋放對象w,析構(gòu)函數(shù)被調(diào)用,輸出第2行結(jié)果。(3) ,其他部分不變,寫出輸出結(jié)果。class Whole{public:Whole(int i)。 // Whole的有參構(gòu)造函數(shù)Whole(){}。 // Whole的無參構(gòu)造函數(shù)~Whole()。 // Whole的析構(gòu)函數(shù)private:Part p1。// 子對象1Part p2。// 子對象2Part p3。// 子對象3 }。Whole∷Whole(int i):p2(i),p1(){coutConstructor of Wholeendl。}Whole∷~Whole(){coutDestructor of Wholeendl。}【輸出結(jié)果】Default constructor of PartConstructor of Part,3Default constructor of PartConstructor of WholeDestructor of WholeDestructor of Part,0Destructor of Part,3Destructor of Part,0【問題分析】本題主要考查子對象初始化的方法和含有子對象時構(gòu)造函數(shù)和析構(gòu)函數(shù)的調(diào)用順序?!疽c提示】◆當(dāng)建立X類的對象時,先調(diào)用子對象的構(gòu)造函數(shù),初始化子對象,然后才執(zhí)行X類的構(gòu)造函數(shù),初始化X類中的其他成員。◆對子對象構(gòu)造函數(shù)的調(diào)用順序取決于這些子對象在類中的說明順序,與它們在成員初始化列表中給出的順序無關(guān)?!羧绻鸛類的構(gòu)造函數(shù)沒有給出成員初始化列表,表明子對象將使用默認(rèn)構(gòu)造函數(shù)進(jìn)行初始化?!粑鰳?gòu)函數(shù)的調(diào)用順序與構(gòu)造函數(shù)的調(diào)用順序正好相反。【結(jié)果分析】程序的Whole類中出現(xiàn)了類Part的3個對象pp2和p3,作為該類的數(shù)據(jù)成員,則pp2和p3被稱為子對象。當(dāng)建立Whole類的對象w時,子對象pp2和p3被建立,相應(yīng)的構(gòu)造函數(shù)被執(zhí)行。由于p1在Whole類中先說明,所以先執(zhí)行它所使用的構(gòu)造函數(shù),即類Part的默認(rèn)構(gòu)造函數(shù),接著p2執(zhí)行它所使用的有參構(gòu)造函數(shù),緊接著初始化p3,由于Whole類構(gòu)造函數(shù)的成員初始化列表中沒有子對象p3進(jìn)行初始化的選項,所以執(zhí)行類Part的默認(rèn)構(gòu)造函數(shù),當(dāng)所有子對象被構(gòu)造完之后,對象w的構(gòu)造函數(shù)才被執(zhí)行,從而得到前4行輸出結(jié)果,而后4行是執(zhí)行相應(yīng)析構(gòu)函數(shù)的輸出結(jié)果。(4) includeiostream using namespace std。class Book{public:Book(int w)。static int sumnum。private:int num。}。Book∷Book(int w){num=w。sumnum=w。}int Book∷sumnum=120。// 語句1int main(){Book b1(20)。// 語句2Book b2(70)。// 語句3coutBook∷sumnumendl。return 0。} 【輸出結(jié)果】30【問題分析】本題主要考查“在類的范圍內(nèi)所有對象共享靜態(tài)成員的數(shù)據(jù)”的含義。【結(jié)果分析】程序中語句1對靜態(tài)成員sumnum進(jìn)行初始化,sumnum得到初值120。執(zhí)行語句2時,調(diào)用構(gòu)造函數(shù),sumnum變?yōu)?00。接著語句3,再調(diào)用構(gòu)造函數(shù),sumnum變?yōu)?0。五、 程序設(shè)計題(1) 聲明一個Circle類,有數(shù)據(jù)成員radius(半徑)、成員函數(shù)area(),計算圓的面積,構(gòu)造一個Circle的對象進(jìn)行測試?!締栴}分析】本題主要考查類定義的形式、對象成員訪問和對象初始化的方法。要求理解類和構(gòu)造函數(shù)的真正含義,特別注意如何將客觀事物的屬性和行為抽象為類的成員。【解題思路】① 題目中已給出了類的基本部分,需要增加一個構(gòu)造函數(shù)來初始化數(shù)據(jù)成員radius。② 為了程序的通用性,圓的半徑由鍵盤輸入。【參考程序】// includeiostream
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1