版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
C語言程序設(shè)計(鄭莉)課后習(xí)題答案C語言程序設(shè)計(鄭莉)課后習(xí)題答案C語言程序設(shè)計(鄭莉)課后習(xí)題答案資料僅供參考文件編號:2022年4月C語言程序設(shè)計(鄭莉)課后習(xí)題答案版本號:A修改號:1頁次:1.0審核:批準(zhǔn):發(fā)布日期:C++語言程序設(shè)計(清華大學(xué)鄭莉)課后習(xí)題答案第一章概述1-1簡述計算機程序設(shè)計語言的發(fā)展歷程。解:迄今為止計算機程序設(shè)計語言的發(fā)展經(jīng)歷了機器語言、匯編語言、高級語言等階段,C++語言是一種面向?qū)ο蟮木幊陶Z言,也屬于高級語言。1-2面向?qū)ο蟮木幊陶Z言有哪些特點解:面向?qū)ο蟮木幊陶Z言與以往各種編程語言有根本的不同,它設(shè)計的出發(fā)點就是為了能更直接的描述客觀世界中存在的事物以及它們之間的關(guān)系。面向?qū)ο蟮木幊陶Z言將客觀事物看作具有屬性和行為的對象,通過抽象找出同一類對象的共同屬性(靜態(tài)特征)和行為(動態(tài)特征),形成類。通過類的繼承與多態(tài)可以很方便地實現(xiàn)代碼重用,大大縮短了軟件開發(fā)周期,并使得軟件風(fēng)格統(tǒng)一。因此,面向?qū)ο蟮木幊陶Z言使程序能夠比較直接地反問題域的本來面目,軟件開發(fā)人員能夠利用人類認(rèn)識事物所采用的一般思維方法來進(jìn)行軟件開發(fā)。C++語言是目前應(yīng)用最廣的面向?qū)ο蟮木幊陶Z言。1-3什么是結(jié)構(gòu)化程序設(shè)計方法這種方法有哪些優(yōu)點和缺點解:結(jié)構(gòu)化程序設(shè)計的思路是:自頂向下、逐步求精;其程序結(jié)構(gòu)是按功能劃分為若干個基本模塊;各模塊之間的關(guān)系盡可能簡單,在功能上相對獨立;每一模塊內(nèi)部均是由順序、選擇和循環(huán)三種基本結(jié)構(gòu)組成;其模塊化實現(xiàn)的具體方法是使用子程序。結(jié)構(gòu)化程序設(shè)計由于采用了模塊分解與功能抽象,自頂向下、分而治之的方法,從而有效地將一個較復(fù)雜的程序系統(tǒng)設(shè)計任務(wù)分解成許多易于控制和處理的子任務(wù),便于開發(fā)和維護(hù)。雖然結(jié)構(gòu)化程序設(shè)計方法具有很多的優(yōu)點,但它仍是一種面向過程的程序設(shè)計方法,它把數(shù)據(jù)和處理數(shù)據(jù)的過程分離為相互獨立的實體。當(dāng)數(shù)據(jù)結(jié)構(gòu)改變時,所有相關(guān)的處理過程都要進(jìn)行相應(yīng)的修改,每一種相對于老問題的新方法都要帶來額外的開銷,程序的可重用性差。由于圖形用戶界面的應(yīng)用,程序運行由順序運行演變?yōu)槭录?qū)動,使得軟件使用起來越來越方便,但開發(fā)起來卻越來越困難,對這種軟件的功能很難用過程來描述和實現(xiàn),使用面向過程的方法來開發(fā)和維護(hù)都將非常困難。1-4什么是對象什么是面向?qū)ο蠓椒ㄟ@種方法有哪些特點解:從一般意義上講,對象是現(xiàn)實世界中一個實際存在的事物,它可以是有形的,也可以是無形的。對象是構(gòu)成世界的一個獨立單位,它具有自己的靜態(tài)特征和動態(tài)特征。面向?qū)ο蠓椒ㄖ械膶ο?,是系統(tǒng)中用來描述客觀事物的一個實體,它是用來構(gòu)成系統(tǒng)的一個基本單位,由一組屬性和一組行為構(gòu)成。面向?qū)ο蟮姆椒▽?shù)據(jù)及對數(shù)據(jù)的操作方法放在一起,作為一個相互依存、不可分離的整體--對象。對同類型對象抽象出其共性,形成類。類中的大多數(shù)數(shù)據(jù),只能用本類的方法進(jìn)行處理。類通過一個簡單的外部接口,與外界發(fā)生關(guān)系,對象與對象之間通過消息進(jìn)行通訊。這樣,程序模塊間的關(guān)系更為簡單,程序模塊的獨立性、數(shù)據(jù)的安全性就有了良好的保障。通過實現(xiàn)繼承與多態(tài)性,還可以大大提高程序的可重用性,使得軟件的開發(fā)和維護(hù)都更為方便。面向?qū)ο蠓椒ㄋ鶑娬{(diào)的基本原則,就是直接面對客觀存在的事物來進(jìn)行軟件開發(fā),將人們在日常生活中習(xí)慣的思維方式和表達(dá)方式應(yīng)用在軟件開發(fā)中,使軟件開發(fā)從過分專業(yè)化的方法、規(guī)則和技巧中回到客觀世界,回到人們通常的思維。1-5什么叫做封裝解:封裝是面向?qū)ο蠓椒ǖ囊粋€重要原則,就是把對象的屬性和服務(wù)結(jié)合成一個獨立的系統(tǒng)單位,并盡可能隱蔽對象的內(nèi)部細(xì)節(jié)。1-6面向?qū)ο蟮能浖こ贪男┲饕獌?nèi)容解:面向?qū)ο蟮能浖こ淌敲嫦驅(qū)ο蠓椒ㄔ谲浖こ填I(lǐng)域的全面應(yīng)用,它包括面向?qū)ο蟮姆治觯∣OA)、面向?qū)ο蟮脑O(shè)計(OOD)、面向?qū)ο蟮木幊蹋∣OP)、面向?qū)ο蟮臏y試(OOT)和面向?qū)ο蟮能浖S護(hù)(OOSM)等主要內(nèi)容。1-7簡述計算機內(nèi)部的信息可分為幾類解:計算機內(nèi)部的信息可以分成控制信息和數(shù)據(jù)信息二大類;控制信息可分為指令和控制字兩類;數(shù)據(jù)信息可分為數(shù)值信息和非數(shù)值信息兩類。1-8什么叫二進(jìn)制使用二進(jìn)制有何優(yōu)點和缺點解:二進(jìn)制是基數(shù)為2,每位的權(quán)是以2為底的冪的進(jìn)制,遵循逢二進(jìn)一原則,基本符號為0和1。采用二進(jìn)制碼表示信息,有如下幾個優(yōu)點:1.易于物理實現(xiàn);2.二進(jìn)制數(shù)運算簡單;3.機器可靠性高;4.通用性強。其缺點是它表示數(shù)的容量較小,表示同一個數(shù),二進(jìn)制較其他進(jìn)制需要更多的位數(shù)。1-9請將以下十進(jìn)制數(shù)值轉(zhuǎn)換為二進(jìn)制和十六進(jìn)制補碼:(1)2(2)9(3)93(4)-32(5)65535(6)-1解:(1)(2)10=(10)2=(2)16(2)(9)10=(1001)2=(9)16(3)(93)10=(1011101)2=(5D)16(4)(-32)10=()2=(E0)16(5)(65535)10=()2=(FFFF)16(6)(-1)10=()2=(FFFF)161-10請將以下數(shù)值轉(zhuǎn)換為十進(jìn)制:(1)(1010)2(2)()2(3)(01011111)2(4)(7F)16(5)(2D3E)16(6)(F10E)16解:(1)(1010)2=(10)10(2)()2=(143)10(3)(01011111)2=(24515)10(4)(7F)16=(127)10(5)(2D3E)16=(11582)10(6)(F10E)16=(61710)101-11簡要比較原碼、反碼、補碼等幾種編碼方法。解:原碼:將符號位數(shù)字化為0或1,數(shù)的絕對值與符號一起編碼,即所謂"符號──絕對值表示"的編碼。正數(shù)的反碼和補碼與原碼表示相同。負(fù)數(shù)的反碼與原碼有如下關(guān)系:符號位相同(仍用1表示),其余各位取反(0變1,1變0)。補碼由該數(shù)反碼的最末位加1求得。第二章C++簡單程序設(shè)計2-1C++語言有那些主要特點和優(yōu)點解:C++語言的主要特點表現(xiàn)在兩個方面,一是全面兼容C,二是支持面向?qū)ο蟮姆椒?。C++是一個更好的C,它保持了C的簡潔、高效、接近匯編語言、具有良好的可讀性和可移植性等特點,對C的類型系統(tǒng)進(jìn)行了改革和擴充,因此C++比C更安全,C++的編譯系統(tǒng)能檢查出更多的類型錯誤。C++語言最重要的特點是支持面向?qū)ο蟆?-2下列標(biāo)識符哪些是合法的Program,,_lock,test2,3in1,@mail,A_B_C_D解:Program,_lock,test2,A_B_C_D是合法的標(biāo)識符,其它的不是。2-3例中每條語句的作用是什么#include<>voidmain(void){cout<<"Hello!\n";cout<<"Welcometoc++!\n";}解:#include<>201/42.201%43.201/解:1.502.13.2-10執(zhí)行完下列語句后,a、b、c三個變量的值為多少a=30;b=a++;c=++a;解:a:32;b:30;c:32;2-11在一個for循環(huán)中,可以初始化多個變量嗎如何實現(xiàn)解:在for循環(huán)設(shè)置條件的第一個";"前,用,分隔不同的賦值表達(dá)式。例如:for(x=0,y=10;x<100;x++,y++)2-12執(zhí)行完下列語句后,n的值為多少intn;for(n=0;n<100;n++)解:n的值為1002-13寫一條for語句,計數(shù)條件為n從100到200,步長為2;然后用while和do…while語句完成同樣的循環(huán)。解:for循環(huán):for(intn=100;n<=200;n+=2);while循環(huán):intx=100;while(n<=200)n+=2;do…while循環(huán):intn=100;do{n+=2;}while(n<=200);2-14if(x=3)和if(x==3)這兩條語句的差別是什么解:語句if(x=3)把3賦給x,賦值表達(dá)式的值為true,作為if語句的條件;語句if(x==3)首先判斷x的值是否為3,若相等條件表達(dá)式的值為ture,否則為false。2-15什么叫做作用域什么叫做局部變量什么叫做全局變量,如何使用全局變量解:作用域是一個標(biāo)識符在程序正文中有效的區(qū)域。局部變量,一般來講就是具有塊作用域的變量;全局變量,就是具有文件作用域的變量。2-16已知x、y兩個變量,寫一條簡單的if語句,把較小的的值賦給原本值較大的變量。解:if(x>y)x=y;elsen";cout<<"Thesizeofashortintis:\t"<<sizeof(short)<<"bytes.\n";cout<<"Thesizeofalongintis:\t"<<sizeof(long)<<"bytes.\n";cout<<"Thesizeofacharis:\t\t"<<sizeof(char)<<"bytes.\n";cout<<"Thesizeofafloatis:\t\t"<<sizeof(float)<<"bytes.\n";cout<<"Thesizeofadoubleis:\t"<<sizeof(double)<<"bytes.\n";return0;}程序運行輸出:Thesizeofanintis:4bytes.Thesizeofashortintis:2bytes.Thesizeofalongintis:4bytes.Thesizeofacharis:1bytes.Thesizeofafloatis:4bytes.Thesizeofadoubleis:8bytes.2-20打印ASCII碼為32~127的字符。解:#include<>intmain(){for(inti=32;i<128;i++)cout<<(char)i;return0;}程序運行輸出:!"#$%G'()*+,./09:;<>@ABCDEFGHIJKLMNOP_QRSTUVWXYZ[\]^'abcdefghijklmnopqrstuvwxyz<|>~s2-21運行下面的程序,觀察其輸出,與你的設(shè)想是否相同#include<>intmain(){unsignedintx;unsignedinty=100;unsignedintz=50;x=y-z;cout<<"Differenceis:"<<x;x=z-y;cout<<"\nNowdifferenceis:"<<x<<endl;return0;}解:程序運行輸出:Differenceis:50Nowdifferenceis:46注意,第二行的輸出并非-50,注意x、y、z的數(shù)據(jù)類型。2-22運行下面的程序,觀察其輸出,體會i++與++i的差別。#include<>intmain(){intmyAge=39;n";cout<<"Youare:"<<yourAge<<"yearsold\n";myAge++;.\n";cout<<"Iam:"<<myAge<<"yearsold.\n";cout<<"Youare:"<<yourAge<<"yearsold\n";cout<<"Anotheryearpasses\n";cout<<"Iam:"<<myAge++<<"yearsold.\n";cout<<"Youare:"<<++yourAge<<"yearsold\n";cout<<"Let'sprintitagain.\n";cout<<"Iam:"<<myAge<<"yearsold.\n";cout<<"Youare:"<<yourAge<<"yearsold\n";return0;}解:程序運行輸出:Iam39yearsoldYouare39yearsoldOneyearpassesIam40yearsoldYouare40yearsoldAnotheryearpassesIam40yearsoldYouare41yearsoldLet'sprintitagainIam41yearsoldYouare41yearsold2-23什么叫常量什么叫變量解:所謂常量是指在程序運行的整個過程中其值始終不可改變的量,除了用文字表示常量外,也可以為常量命名,這就是符號常量;在程序的執(zhí)行過程中其值可以變化的量稱為變量,變量是需要用名字來標(biāo)識的。2-24變量有哪幾種存儲類型解:變量有以下幾種存儲類型:auto存儲類型:采用堆棧方式分配內(nèi)存空間,屬于一時性存儲,其存儲空間可以被若干變量多次覆蓋使用;register存儲類型:存放在通用寄存器中;extern存儲類型:在所有函數(shù)和程序段中都可引用;static存儲類型:在內(nèi)存中是以固定地址存放的,在整個程序運行期間都有效。2-25寫出下列表達(dá)式的值:1.2<3&&6<92.!(4<7)3.!(3>5)||(6<2)解:1.true2.false3.true2-26若a=1,b=2,c=3,下列各式的結(jié)果是什么1.a|b-c2.a^b&-c3.a&b|c4.a|b&c解:1.-12.13.34.32-27若a=1,下列各式的結(jié)果是什么1.!a|a2.~a|a3.a^a4.a>>2解:1.12.-13.04.02-28編寫一個完整的程序,實現(xiàn)功能:向用戶提問"現(xiàn)在正在下雨嗎",提示用戶輸入Y或N。若輸入為Y,顯示"現(xiàn)在正在下雨。";若輸入為N,顯示"現(xiàn)在沒有下雨。";否則繼續(xù)提問"現(xiàn)在正在下雨嗎"解:源程序:#include<>#include<>voidmain(){charflag;while(1){cout<<"現(xiàn)在正在下雨嗎(YesorNo):";cin>>flag;if(toupper(flag)=='Y'){cout<<"現(xiàn)在正在下雨。";break;}if(toupper(flag)=='N'){cout<<"現(xiàn)在沒有下雨。";break;}}}程序運行輸出:現(xiàn)在正在下雨嗎(YesorNo):x現(xiàn)在正在下雨嗎(YesorNo):l現(xiàn)在正在下雨嗎(YesorNo):q現(xiàn)在正在下雨嗎(YesorNo):n現(xiàn)在沒有下雨?;颍含F(xiàn)在正在下雨嗎(YesorNo):y現(xiàn)在正在下雨。2-29編寫一個完整的程序,運行時向用戶提問"你考試考了多少分(0~100)",接收輸入后判斷其等級,顯示出來。規(guī)則如下:解:#include<>voidmain(){inti,score;cout<<"你考試考了多少分(0~100):";cin>>score;if(score>100||score<0)cout<<"分?jǐn)?shù)值必須在0到100之間!";else{i=score/10;switch(i){case10:case9:cout<<"你的成績?yōu)閮?yōu)!";break;case8:cout<<"你的成績?yōu)榱迹?;break;case7:case6:cout<<"你的成績?yōu)橹校?;break;default:cout<<"你的成績?yōu)椴睿?;}}}程序運行輸出:你考試考了多少分(0~100):85你的成績?yōu)榱迹?-30(1)實現(xiàn)一個簡單的菜單程序,運行時顯示"Menu:A(dd)D(elete)S(ort)Q(uit),Selectone:"提示用戶輸入,A表示增加,D表示刪除,S表示排序,Q表示退出,輸入為A、D、S時分別提示"數(shù)據(jù)已經(jīng)增加、刪除、排序。"輸入為Q時程序結(jié)束。要求使用if…else語句進(jìn)行判斷,用break、continue控制程序流程。解:#include<>#include<>voidmain(){charchoice,c;while(1){cout<<"Menu:A(dd)D(elete)S(ort)Q(uit),Selectone:";cin>>c;choice=toupper(c);if(choice=='A'){cout<<"數(shù)據(jù)已經(jīng)增加."<<endl;continue;}elseif(choice=='D'){cout<<"數(shù)據(jù)已經(jīng)刪除."<<endl;continue;}elseif(choice=='S'){cout<<"數(shù)據(jù)已經(jīng)排序."<<endl;continue;}elseif(choice=='Q')break;}}程序運行輸出:Menu:A(dd)D(elete)S(ort)Q(uit),Selectone:a數(shù)據(jù)已經(jīng)增加.Menu:A(dd)D(elete)S(ort)Q(uit),Selectone:d數(shù)據(jù)已經(jīng)刪除.Menu:A(dd)D(elete)S(ort)Q(uit),Selectone:s數(shù)據(jù)已經(jīng)排序.Menu:A(dd)D(elete)S(ort)Q(uit),Selectone:q(2)實現(xiàn)一個簡單的菜單程序,運行時顯示"Menu:A(dd)D(elete)S(ort)Q(uit),Selectone:"提示用戶輸入,A表示增加,D表示刪除,S表示排序,Q表示退出,輸入為A、D、S時分別提示"數(shù)據(jù)已經(jīng)增加、刪除、排序。"輸入為Q時程序結(jié)束。要求使用Switch語句。解:源程序:#include<>#include<>voidmain(){charchoice;while(1){cout<<"Menu:A(dd)D(elete)S(ort)Q(uit),Selectone:";cin>>choice;switch(toupper(choice)){case'A':cout<<"數(shù)據(jù)已經(jīng)增加."<<endl;break;case'D':cout<<"數(shù)據(jù)已經(jīng)刪除."<<endl;break;case'S':cout<<"數(shù)據(jù)已經(jīng)排序."<<endl;break;case'Q':exit(0);break;default:;}}}程序運行輸出:Menu:A(dd)D(elete)S(ort)Q(uit),Selectone:a數(shù)據(jù)已經(jīng)增加.Menu:A(dd)D(elete)S(ort)Q(uit),Selectone:d數(shù)據(jù)已經(jīng)刪除.Menu:A(dd)D(elete)S(ort)Q(uit),Selectone:s數(shù)據(jù)已經(jīng)排序.Menu:A(dd)D(elete)S(ort)Q(uit),Selectone:q2-31用窮舉法找出1~100間的質(zhì)數(shù),顯示出來。分別使用while,do-while,for循環(huán)語句實現(xiàn)。解:源程序:使用while循環(huán)語句:#include<>#include<>voidmain(){inti,j,k,flag;i=2;while(i<=100){flag=1;k=sqrt(i);j=2;while(j<=k){if(i%j==0){flag=0;break;}j++;}if(flag)cout<<i<<"是質(zhì)數(shù)."<<endl;i++;}}使用do…while循環(huán)語句:#include<>#include<>voidmain(){inti,j,k,flag;i=2;do{flag=1;k=sqrt(i);j=2;do{if(i%j==0){flag=0;break;}j++;}while(j<=k);if(flag)cout<<i<<"是質(zhì)數(shù)."<<endl;i++;}while(i<=100);}使用for循環(huán)語句:#include<>#include<>voidmain(){inti,j,k,flag;for(i=2;i<=100;i++){flag=1;k=sqrt(i);for(j=2;j<=k;j++){if(i%j==0){flag=0;break;}}if(flag)cout<<i<<"是質(zhì)數(shù)."<<endl;}}程序運行輸出:2是質(zhì)數(shù).3是質(zhì)數(shù).5是質(zhì)數(shù).7是質(zhì)數(shù).11是質(zhì)數(shù).13是質(zhì)數(shù).17是質(zhì)數(shù).19是質(zhì)數(shù).23是質(zhì)數(shù).29是質(zhì)數(shù).31是質(zhì)數(shù).37是質(zhì)數(shù).41是質(zhì)數(shù).43是質(zhì)數(shù).47是質(zhì)數(shù).53是質(zhì)數(shù).59是質(zhì)數(shù).61是質(zhì)數(shù).67是質(zhì)數(shù).71是質(zhì)數(shù).73是質(zhì)數(shù).79是質(zhì)數(shù).83是質(zhì)數(shù).89是質(zhì)數(shù).97是質(zhì)數(shù).2-32比較Break語句與Continue語句的不同用法。解:Break使程序從循環(huán)體和switch語句內(nèi)跳出,繼續(xù)執(zhí)行邏輯上的下一條語句,不能用在別處;continue語句結(jié)束本次循環(huán),接著開始判斷決定是否繼續(xù)執(zhí)行下一次循環(huán);2-33定義一個表示時間的結(jié)構(gòu)體,可以精確表示年、月、日、小時、分、秒;提示用戶輸入年、月、日、小時、分、秒的值,然后完整地顯示出來。解:源程序見"實驗指導(dǎo)"部分實驗二2-34在程序中定義一個整型變量,賦以1~100的值,要求用戶猜這個數(shù),比較兩個數(shù)的大小,把結(jié)果提示給用戶,直到猜對為止。分別使用while、do…while語句實現(xiàn)循環(huán)。解:nNumberone:";cin>>one;cout<<"Numbertwo:";cin>>two;answer=Divider(one,two);if(answer>-1)cout<<"Answer:"<<answer;elsecout<<"Error,can'tdividebyzero!";return0;}程序運行輸出:Entertwonumbers.Numberone:8Numbertwo:2Answer:43-8編寫函數(shù)把華氏溫度轉(zhuǎn)換為攝氏溫度,公式為:C=(F-32)*5/9;在主程序中提示用戶輸入一個華氏溫度,轉(zhuǎn)化后輸出相應(yīng)的攝氏溫度。解:源程序見"實驗指導(dǎo)"部分實驗三3-9編寫函數(shù)判斷一個數(shù)是否是質(zhì)數(shù),在主程序中實現(xiàn)輸入、輸出。解:#include<>#include<>intprime(inti);<<endl;elsecout<<i<<"不是質(zhì)數(shù)."<<endl;}intprime(inti){intj,k,flag;flag=1;k=sqrt(i);for(j=2;j<=k;j++){if(i%j==0){flag=0;break;}}if(flag)return1;elsereturn0;}程序運行輸出:請輸入一個整數(shù):11511151是質(zhì)數(shù).3-10編寫函數(shù)求兩個整數(shù)的最大公約數(shù)和最小公倍數(shù)。解:源程序:#include<>#include<>intfn1(inti,intj);n";(7);(20);cout<<"NowJackis";cout<<()<<"yearsoldand";cout<<()<<"poundsweight.";return0;}程序運行輸出:JackisaDogwhois2yearsoldand10poundsweight.NowJackis7yearsold20poundsweight.4-9設(shè)計并測試一個名為Rectangle的矩形類,其屬性為矩形的左下角與右上角兩個點的坐標(biāo),能計算矩形的面積。解:源程序:#include<>classRectangle{public:Rectangle(inttop,intleft,intbottom,intright);~Rectangle(){}intGetTop()const{returnitsTop;}intGetLeft()const{returnitsLeft;}intGetBottom()const{returnitsBottom;}intGetRight()const{returnitsRight;}voidSetTop(inttop){itsTop=top;}voidSetLeft(intleft){itsLeft=left;}voidSetBottom(intbottom){itsBottom=bottom;}voidSetRight(intright){itsRight=right;}intGetArea()const;private:intitsTop;intitsLeft;intitsBottom;intitsRight;};Rectangle::Rectangle(inttop,intleft,intbottom,intright){itsTop=top;itsLeft=left;itsBottom=bottom;itsRight=right;}intRectangle::GetArea()const{intWidth=itsRight-itsLeft;intHeight=itsTop-itsBottom;return(Width*Height);}intmain(){RectangleMyRectangle(100,20,50,80);intArea=();cout<<"Area:"<<Area<<"\n";return0;}程序運行輸出:Area:3000UpperLeftXCoordinate:204-10設(shè)計一個用于人事管理的People(人員)類??紤]到通用性,這里只抽象出所有類型人員都具有的屬性:number(編號)、sex(性別)、birthday(出生日期)、id(身份證號)等等。其中"出生日期"定義為一個"日期"類內(nèi)嵌子對象。用成員函數(shù)實現(xiàn)對人員信息的錄入和顯示。要求包括:構(gòu)造函數(shù)和析構(gòu)函數(shù)、拷貝構(gòu)造函數(shù)、內(nèi)聯(lián)成員函數(shù)、帶缺省形參值的成員函數(shù)、聚集。解:本題用作實驗四的選做題,因此不給出答案。4-11定義一個矩形類,有長、寬兩個屬性,有成員函數(shù)計算矩形的面積解:#include<>classRectangle{public:Rectangle(floatlen,floatwidth){Length=len;Width=width;}~Rectangle(){};floatGetArea(){returnLength*Width;}floatGetLength(){returnLength;}floatGetWidth(){returnWidth;}private:floatLength;floatWidth;};voidmain(){floatlength,width;cout<<"請輸入矩形的長度:";cin>>length;cout<<"請輸入矩形的寬度:";cin>>width;Rectangler(length,width);cout<<"長為"<<length<<"寬為"<<width<<"的矩形的面積為:"<<()<<endl;}程序運行輸出:請輸入矩形的長度:5請輸入矩形的寬度:4長為5寬為4的矩形的面積為:204-12定義一個"數(shù)據(jù)類型"datatype類,能處理包含字符型、整型、浮點型三種類型的數(shù)據(jù),給出其構(gòu)造函數(shù)。解:#include<>classdatatype{enum{character,integer,floating_point}vartype;union{charc;inti;floatf;};public:datatype(charch){vartype=character;c=ch;}datatype(intii){vartype=integer;i=ii;}datatype(floatff){vartype=floating_point;f=ff;}voidprint();};voiddatatype::print(){switch(vartype){casecharacter:cout<<"字符型:"<<c<<endl;break;caseinteger:cout<<"整型:"<<i<<endl;break;casefloating_point:cout<<"浮點型:"<<f<<endl;break;}}voidmain(){datatypeA('c'),B(12),C;();();();}程序運行輸出:字符型:c整型:12浮點型:4-13定義一個Circle類,有數(shù)據(jù)成員半徑Radius,成員函數(shù)GetArea(),計算圓的面積,構(gòu)造一個Circle的對象進(jìn)行測試。解:#include<>classCircle{public:Circle(floatradius){Radius=radius;}~Circle(){}floatGetArea(){return*Radius*Radius;}private:floatRadius;};voidmain(){floatradius;cout<<"請輸入圓的半徑:";cin>>radius;Circlep(radius);cout<<"半徑為"<<radius<<"的圓的面積為:"<<()<<endl;}程序運行輸出:請輸入圓的半徑:5半徑為5的圓的面積為:4-14定義一個tree類,有成員ages,成員函數(shù)grow(intyears)對ages加上years,age()顯示tree對象的ages的值。解:#include<>classTree{intages;public:Tree(intn=0);~Tree();voidgrow(intyears);voidage();};Tree::Tree(intn){ages=n;}Tree::~Tree(){age();}voidTree::grow(intyears){ages+=years;}voidTree::age(){cout<<"這棵樹的年齡為"<<ages<<endl;}voidmain(){Treet(12);();(4);}程序運行輸出:這棵樹的年齡為12這棵樹的年齡為16第五章C++程序的基本結(jié)構(gòu)5-1什么叫做作用域有哪幾種類型的作用域解:作用域討論的是標(biāo)識符的有效范圍,作用域是一個標(biāo)識符在程序正文中有效的區(qū)域。C++的作用域分為函數(shù)原形作用域、塊作用域(局部作用域)、類作用域和文件作用域.5-2什么叫做可見性可見性的一般規(guī)則是什么解:可見性是標(biāo)識符是否可以引用的問題;可見性的一般規(guī)則是:標(biāo)識符要聲明在前,引用在后,在同一作用域中,不能聲明同名的標(biāo)識符。對于在不同的作用域聲明的標(biāo)識符,遵循的原則是:若有兩個或多個具有包含關(guān)系的作用域,外層聲明的標(biāo)識符如果在內(nèi)層沒有聲明同名標(biāo)識符時仍可見,如果內(nèi)層聲明了同名標(biāo)識符則外層標(biāo)識符不可見。5-3下面的程序的運行結(jié)果是什么,實際運行一下,看看與你的設(shè)想有何不同。#include<>voidmyFunction();intx=5,y=7;intmain(){cout<<"xfrommain:"<<x<<"\n";cout<<"yfrommain:"<<y<<"\n\n";myFunction();cout<<"BackfrommyFunction!\n\n";cout<<"xfrommain:"<<x<<"\n";cout<<"yfrommain:"<<y<<"\n";return0;}voidmyFunction(){inty=10;cout<<"xfrommyFunction:"<<x<<"\n";cout<<"yfrommyFunction:"<<y<<"\n\n";}解:程序運行輸出:xfrommain:5yfrommain:7xfrommyFunction:5yfrommyFunction:10BackfrommyFunction!xfrommain:5yfrommain:75-4假設(shè)有兩個無關(guān)系的類Engine和Fuel,使用時,怎樣允許Fuel成員訪問Engine中的私有和保護(hù)的成員解:源程序:classfuel;classengine{friendclassfuel;private;intpowerlevel;public;engine(){powerLevel=0;}voidengine_fn(fuel&f);};classfuel{friendclassengine;private;intfuelLevel;public:fuel(){fuelLevel=0;}voidfuel_fn(engine&e);};5-5什么叫做靜態(tài)數(shù)據(jù)成員它有何特點解:類的靜態(tài)數(shù)據(jù)成員是類的數(shù)據(jù)成員的一種特例,采用static關(guān)鍵字來聲明。對于類的普通數(shù)據(jù)成員,每一個類的對象都擁有一個拷貝,就是說每個對象的同名數(shù)據(jù)成員可以分別存儲不同的數(shù)值,這也是保證對象擁有自身區(qū)別于其它對象的特征的需要,但是靜態(tài)數(shù)據(jù)成員,每個類只要一個拷貝,由所有該類的對象共同維護(hù)和使用,這個共同維護(hù)、使用也就實現(xiàn)了同一類的不同對象之間的數(shù)據(jù)共享。5-6什么叫做靜態(tài)函數(shù)成員它有何特點解:使用static關(guān)鍵字聲明的函數(shù)成員是靜態(tài)的,靜態(tài)函數(shù)成員屬于整個類,同一個類的所有對象共同維護(hù),為這些對象所共享。靜態(tài)函數(shù)成員具有以下兩個方面的好處,一是由于靜態(tài)成員函數(shù)只能直接訪問同一個類的靜態(tài)數(shù)據(jù)成員,可以保證不會對該類的其余數(shù)據(jù)成員造成負(fù)面影響;二是同一個類只維護(hù)一個靜態(tài)函數(shù)成員的拷貝,節(jié)約了系統(tǒng)的開銷,提高程序的運行效率。5-7定義一個Cat類,擁有靜態(tài)數(shù)據(jù)成員HowManyCats,記錄Cat的個體數(shù)目;靜態(tài)成員函數(shù)GetHowMany(),存取HowManyCats。設(shè)計程序測試這個類,體會靜態(tài)數(shù)據(jù)成員和靜態(tài)成員函數(shù)的用法。解:源程序:#include<>classCat{public:Cat(intage):itsAge(age){HowManyCats++;}virtual~Cat(){HowManyCats--;}virtualintGetAge(){returnitsAge;}virtualvoidSetAge(intage){itsAge=age;}staticintGetHowMany(){returnHowManyCats;}private:intitsAge;staticintHowManyCats;};intCat::HowManyCats=0;voidTelepathicFunction();intmain(){constintMaxCats=5;Cat*CatHouse[MaxCats];inti;for(i=0;i<MaxCats;i++){CatHouse[i]=newCat(i);TelepathicFunction();}for(i=0;i<MaxCats;i++){deleteCatHouse[i];TelepathicFunction();}return0;}voidTelepathicFunction(){cout<<"Thereare"<<Cat::GetHowMany()<<"catsalive!\n";}程序運行輸出:Thereare1catsalive!Thereare2catsalive!Thereare3catsalive!Thereare4catsalive!Thereare5catsalive!Thereare4catsalive!Thereare3catsalive!Thereare2catsalive!Thereare1catsalive!Thereare0catsalive!5-8什么叫做友元函數(shù)什么叫做友元類解:友元函數(shù)是使用friend關(guān)鍵字聲明的函數(shù),它可以訪問相應(yīng)類的保護(hù)成員和私有成員。友元類是使用friend關(guān)鍵字聲明的類,它的所有成員函數(shù)都是相應(yīng)類的友元函數(shù)。5-9如果類A是類B的友元,類B是類C的友元,類D是類A的派生類,那么類B是類A的友元嗎類C是類A的友元嗎類D是類B的友元嗎解:類B不是類A的友元,友元關(guān)系不具有交換性;類C不是類A的友元,友元關(guān)系不具有傳遞性;類D不是類B的友元,友元關(guān)系不能被繼承。5-10靜態(tài)成員變量可以為私有的嗎聲明一個私有的靜態(tài)整型成員變量。解:可以,例如:private:staticinta;5-11在一個文件中定義一個全局變量n,主函數(shù)main(),在另一個文件中定義函數(shù)fn1(),在main()中對n賦值,再調(diào)用fn1(),在fn1()中也對n賦值,顯示n最后的值。解:#include<>#include""intn;voidmain(){n=20;fn1();cout<<"n的值為"<<n;}.\n";}private:myColoritsColor;};Mammal::Mammal():itsAge(1),itsWeight(5){cout<<"Mammalconstructor...\n";}Mammal::~Mammal(){cout<<"Mammaldestructor...\n";}Dog::Dog():itsColor(WHITE){cout<<"Dogconstructor...\n";}Dog::~Dog(){cout<<"Dogdestructor...\n";}intmain(){DogJack;();();cout<<"Jackis"<<()<<"yearsold\n";return0;}程序運行輸出:Mammalconstructor...Dogconstructor...Mammalsound!Tailwagging...Fidois1yearsoldDogdestructor...Mammaldestructor...7-7定義一個基類,構(gòu)造其派生類,在構(gòu)造函數(shù)中輸出提示信息,觀察構(gòu)造函數(shù)的執(zhí)行情況。解:#include<>classBaseClass{public:BaseClass();};BaseClass::BaseClass(){cout<<"構(gòu)造基類對象!"<<endl;}classDerivedClass:publicBaseClass{public:DerivedClass();};DerivedClass::DerivedClass(){cout<<"構(gòu)造派生類對象!"<<endl;}voidmain(){DerivedClassd;}程序運行輸出:構(gòu)造基類對象!構(gòu)造派生類對象!7-8定義一個Document類,有name成員變量,從Document派生出Book類,增加PageCount變量。解:#include<>#include<>classDocument{public:Document(){};Document(char*name);char*Name;voidPrintNameOf();};Document::Document(char*name){Name=newchar[strlen(name)+1];strcpy(Name,name);};voidDocument::PrintNameOf(){cout<<Name<<endl;}classBook:publicDocument{public:Book(char*name,longpagecount);voidPrintNameOf();private:longPageCount;};Book::Book(char*name,longpagecount):Document(name){PageCount=pagecount;}voidBook::PrintNameOf(){cout<<"Nameofbook:";Document::PrintNameOf();}voidmain(){Documenta("Document1");Bookb("Book1",100);();}程序運行輸出:Nameofbook:Book17-9定義基類Base,有兩個共有成員函數(shù)fn1()、fn2(),私有派生出Derived類,如果想在Derived類的對象中使用基類函數(shù)fn1(),應(yīng)怎么辦解:classBase{public:intfn1()const{return1;}intfn2()const{return2;}};classDerived:privateBase{public:intfn1(){returnBase::fn1();};intfn2(){returnBase::fn2();};};voidmain(){Deriveda;();}7-10定義object類,有weight屬性及相應(yīng)的操作函數(shù),由此派生出box類,增加Height和width屬性及相應(yīng)的操作函數(shù),聲明一個box對象,觀察構(gòu)造函數(shù)與析構(gòu)函數(shù)的調(diào)用順序。解:#include<>classobject{private:intWeight;public:object(){cout<<"構(gòu)造object對象"<<endl;Weight=0;}intGetWeight(){returnWeight;}voidSetWeight(intn){Weight=n;}~object(){cout<<"析構(gòu)object對象"<<endl;}};classbox:publicobject{private:intHeight,Width;public:box(){cout<<"構(gòu)造box對象"<<endl;Height=Width=0;}intGetHeight(){returnHeight;}voidSetHeight(intn){Height=n;}intGetWidth(){returnWidth;}voidSetWidth(intn){Width=n;}~box(){cout<<"析構(gòu)box對象"<<endl;}};voidmain(){boxa;}程序運行輸出:構(gòu)造object對象構(gòu)造box對象析構(gòu)box對象析構(gòu)object對象7-11定義一個基類BaseClass,從它派生出類DerivedClass,BaseClass有成員函數(shù)fn1()、fn2(),DerivedClass也有成員函數(shù)fn1()、fn2(),在主程序中定義一個DerivedClass的對象,分別用DerivedClass的對象以及BaseClass和DerivedClass的指針來調(diào)用fn1()、fn2(),觀察運行結(jié)果。解:#include<>classBaseClass{public:voidfn1();voidfn2();};voidBaseClass::fn1(){cout<<"調(diào)用基類的函數(shù)fn1()"<<endl;}voidBaseClass::fn2(){cout<<"調(diào)用基類的函數(shù)fn2()"<<endl;}classDerivedClass:publicBaseClass{public:voidfn1();voidfn2();};voidDerivedClass::fn1(){cout<<"調(diào)用派生類的函數(shù)fn1()"<<endl;}voidDerivedClass::fn2(){cout<<"調(diào)用派生類的函數(shù)fn2()"<<endl;}voidmain(){DerivedClassaDerivedClass;DerivedClass*pDerivedClass=&aDerivedClass;BaseClass*pBaseClass=&aDerivedClass;();();pBaseClass->fn1();pBaseClass->fn2();pDerivedClass->fn1();pDerivedClass->fn2();}程序運行輸出:調(diào)用派生類的函數(shù)fn1()調(diào)用派生類的函數(shù)fn2()調(diào)用基類的函數(shù)fn1()調(diào)用基類的函數(shù)fn2()調(diào)用派生類的函數(shù)fn1()調(diào)用派生類的函數(shù)fn2()7-12為例9-1的吹泡泡程序加一版權(quán)(About)對話框。然后修改例9-1的程序,加入以下內(nèi)容:程序:1.在程序首部加上文件包含命令#include“”2.在框架窗口類之前加入從CDialog類派生的對話框類:etValue(name,point,height,color,escapement);m_nCount++;Invalidate();}}}howSignal(&dc);}etValue(name,point,height,color,escapement);m_nCount++;Invalidate();}}howSignal(&dc);}etValue(name,point,m_colorSignal,escapement,&m_fontSignal);m_nCount++;Invalidate();}}}howSignal(&dc);}eft,pDoc->GetBubble(i).top,pDoc->GetBubble(i).right,pDoc->GetBubble(i).bottom);-=nHeight;pDC->TextOut,,str);}-x;dy=m_pointList[i].y-y;m_pointList[i].x=(int)(x+dx**;m_pointList[i].y=(int)(y+dx*+dy*;}}=DELTA;pointList[0].y=DELTA;pointList[1].x=DELTA+CHIP_WIDTH;pointList[1].y=DELTA;pointList[2].x=DELTA+CHIP_WIDTH/2;pointList[2].y=DELTA+CHIP_WIDTH/2;m_chipList[0].SetChip(1,pointList,3);pointList[0].x=DELTA;pointList[0].y=DELTA;pointList[1].x=DELTA;pointList[1].y=DELTA+CHIP_WIDTH;pointList[2].x=DELTA+CHIP_WIDTH/2;pointList[2].y=DELTA+CHIP_WIDTH/2;m_chipList[1].SetChip(2,pointList,3);pointList[0].x=DELTA+CHIP_WIDTH;pointList[0].y=DELTA;pointList[1].x=DELTA+CHIP_WIDTH;pointList[1].y=DELTA+CHIP_WIDTH/2;pointList[2].x=DELTA+(CHIP_WIDTH*3)/4;pointList[2].y=DELTA+CHIP_WIDTH/4;m_chipList[2].SetChip(3,pointList,3);pointList[0].x=DELTA+CHIP_WIDTH/2;pointList[0].y=DELTA+CHIP_WIDTH/2;pointList[1].x=DELTA+CHIP_WIDTH/4;pointList[1].y=DELTA+(CHIP_WIDTH*3)/4;pointList[2].x=DELTA+(CHIP_WIDTH*3)/4;pointList[2].y=DELTA+(CHIP_WIDTH*3)/4;m_chipList[3].SetChip(4,pointList,3);pointList[0].x=DELTA+CHIP_WIDTH;pointList[0].y=DELTA+CHIP_WIDTH/2;pointList[1].x=DELTA+CHIP_WIDTH;pointList[1].y=DELTA+CHIP_WIDTH;pointList[2].x=DELTA+CHIP_WIDTH/2;pointList[2].y=DELTA+CHIP_WIDTH;m_chipList[4].SetChip(5,pointList,3);pointList[0].x=DELTA+(CHIP_WIDTH*3)/4;pointList[0].y=DELTA+CHIP_WIDTH/4;pointList[1].x=DELTA+CHIP_WIDTH/2;pointList[1].y=DELTA+CHIP_WIDTH/2;pointList[2].x=DELTA+(CHIP_WIDTH*3)/4;pointList[2].y=DELTA+(CHIP_WIDTH*3)/4;pointList[3].x=DELTA+CHIP_WIDTH;pointList[3].y=DELTA+CHIP_WIDTH/2;m_chipList[5].SetChip(6,pointList,4);pointList[0].x=DELTA;pointList[0].y=DELTA+CHIP_WIDTH;pointList[1].x=DELTA+CHIP_WIDTH/4;pointList[1].y=DELTA+(CHIP_WIDTH*3)/4;pointList[2].x=DELTA+(CHIP_WIDTH*3)/4;pointList[2].y=DELTA+(CHIP_WIDTH*3)/4;pointLis¨t[3].x=DELTA+CHIP_WIDTH/2;pointList[3].y=DELTA+CHIP_WIDTH;m_chipList[6].SetChip(7,pointList,4);erialize(ar);}rawChip(pDC);}tInChip(point)){SetCapture();m_bCaptured=TRUE;m_pointMouse=point;m_nCurrIndex=i;break;}}etRect());CSizeoffset(point-m_pointMouse);pDoc->m_chipList[m_nCurrIndex].MoveTo(offset);InvalidateRect(pDoc->m_chipList[m_nCurrIndex].GetRect());m_pointMouse=point;pDoc->SetModifiedFlag();}}tInChip(point)){InvalidateRect(pDoc->m_chipList[i].GetRect());pDoc->m_chipList[i].Rotation();InvalidateRect(pDoc->m_chipList[i].GetRect(),FALSE);pDoc->SetModifiedFlag();break;}}MP)。說明:首先建立Win32Application空白項目和源代碼文件(不要忘記設(shè)置項目使之可以使用MFC類庫),然后按:“向項目中添加資源”的方法為項目建立資源文件,并將待顯示的位圖文件作為資源裝入項目。程序:eft=rand()%m_nPuzzleWidth+20;m_rectChips[index].top=rand()%m_nPuzzleHeight+20;m_rectChips[index].right=m_rectChips[index].left+m_nChipWidth;m_rectChips[index].bottom=m_rectChips[index].top+m_nChipHeight;}}eft=col*m_nChipWidth;m_rectChips[index].top=row*m_nChipHeight;m_rectChips[index].right=m_rectChips[index].left+m_nChipWidth;m_rectChips[index].bottom=m_rectChips[index].top+m_nChipHeight;}Invalidate();}tInRect(point)){SetCapture();m_bCaptured=TRUE;m_pointMouse=point;m_nCurrIndex=index;return;}}}eft,m_rectChips[index].top,m_nChipWidth,m_nChipHeight,&MemDC,col*m_nChipWidth,row*m_nChipHeight,SRCCOPY);}}eft);InvalidateRect(),FALSE);if(!())eft);}.\n";}~Mammal(){cout<<"Mammaldestructor...\n";}virtualvoidSpeak()const{cout<<"Mammalspeak!\n";}};classDog:publicMammal{public:Dog(){cout<<"DogConstructor...\n";}~Dog(){cout<<"Dogdestructor...\n";}voidSpeak()const{cout<<"Woof!\n";}};intmain(){Mammal*pDog=newDog;pDog->Speak();return0;}程序運行輸出:Mammalconstructor...Dogconstructor...Woof!Dogdestructor...Mammaldestructor...8-9定義一個Shape抽象類,在此基礎(chǔ)上派生出Rectangle和Circle,二者都有GetArea()函數(shù)計算對象的面積,GetPerim()函數(shù)計算對象的周長。解:源程序:#include<>classShape{public:Shape(){}~Shape(){}virtualfloatGetArea()=0;virtualfloatGetPerim()=0;};classCircle:publicShape{public:Circle(floatradius):itsRadius(radius){}~Circle(){}floatGetArea(){return*itsRadius*itsRadius;}floatGetPerim(){return*itsRadius;}private:floatitsRadius;};classRectangle:publicShape{public:Rectangle(floatlen,floatwidth):itsLength(len),itsWidth(width){};~Rectangle(){};virtualfloatGetArea(){returnitsLength*itsWidth;}floatGetPerim(){return2*itsLength+2*itsWidth;}virtualfloatGetLength(){returnitsLength;}virtualfloatGetWidth(){returnitsWidth;}private:floatitsWidth;floatitsLength;};voidmain(){Shape*sp;sp=newCircle(5);cout<<"TheareaoftheCircleis"<<sp->GetArea()<<endl;cout<<"TheperimeteroftheCircleis"<<sp->GetPerim()<<endl;deletesp;sp=newRectangle(4,6);cout<<"TheareaoftheRectangleis"<<sp->GetArea()<<endl;cout<<"TheperimeteroftheRectangleis"<<sp->GetPerim()<<endl;deletesp;}程序運行輸出:TheareaoftheCircleisTheperimeteroftheCircleisTheareaoftheRectangleis24TheperimeteroftheRectangleis208-10對Point類重載++(自增)、--(自減)運算符解:#include<>classPoint{public:Point&operator++();Pointoperator++(int);Point&operator--();Pointoperator--(int);Point(){_x=_y=0;}intx(){return_x;}inty(){return_y;}private:int_x,_y;};Point&Point::operator++(){_x++;_y++;return*this;}PointPoint::operator++(int){Pointtemp=*this;++*this;returntemp;}Point&Point::operator--(){_x--;_y--;return*this;}PointPoint::operator--(int){Pointtemp=*this;--*this;returntemp;}voidmain(){PointA;cout<<"A的值為:"<<()<<","<<()<<endl;A++;cout<<"A的值為:"<<()<<","<<()<<endl;++A;cout<<"A的值為:"<<()<<","<<()<<endl;A--;cout<<"A的值為:"<<()<<","<<()<<endl;--A;cout<<"A的值為:"<<()<<","<<()<<endl;}程序運行輸出:A的值為:0,0A的值為:1,1A的值為:2,2A的值為:1,1A的值為:0,08-11定義一個基類BaseClass,從它派生出類DerivedClass,BaseClass有成員函數(shù)fn1()、fn2(),fn1()是虛函數(shù),DerivedClass也有成員函數(shù)fn1()、fn2(),在主程序中定義一個DerivedClass的對象,分別用BaseClass和DerivedClass的指針來調(diào)用fn1()、fn2(),觀察運行結(jié)果。解:#include<>classBaseClass{public:virtualvoidfn1();voidfn2();};voidBaseClass::fn1(){cout<<"調(diào)用基類的虛函數(shù)fn1()"<<endl;}voidBaseClass::fn2(){cout<<"調(diào)用基類的非虛函數(shù)fn2()"<<endl;}classDerivedClass:publicBaseClass{public:voidfn1();voidfn2();};voidDerivedClass::fn1(){cout<<"調(diào)用派生類的函數(shù)fn1()"<<endl;}voidDerivedClass::fn2(){cout<<"調(diào)用派生類的函數(shù)fn2()"<<endl;}voidmain(){DerivedClassaDerivedClass;DerivedClass*pDerivedClass=&aDerivedClass;BaseClass*pBaseClass=&aDerivedClass;pBaseClass->fn1();pBaseClass->fn2();pDerivedClass->fn1();pDerivedClass->fn2();}程序運行輸出:調(diào)用派生類的函數(shù)fn1()調(diào)用基類的非虛函數(shù)fn2()調(diào)用派生類的函數(shù)fn1()調(diào)用派生類的函數(shù)fn2()8-12定義一個基類BaseClass,從它派生出類DerivedClass,BaseClass中定義虛析構(gòu)函數(shù),在主程序中將一個DerivedClass的對象地址賦給一個BaseClass的指針,觀察運行過程。解:#include<>classBaseClass{public:virtual~BaseClass(){cout<<"~BaseClass()"<<endl;}};classDerivedClass:publicBaseClass{public:~DerivedClass(){cout<<"~DerivedCla
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO/IEC 15416:2025 EN Automatic identification and data capture techniques - Bar code print quality test specification - Linear symbols
- 2025建筑工程施工合同的
- 2025年度文化創(chuàng)意商鋪租賃合同范本(含知識產(chǎn)權(quán)保護(hù)協(xié)議)3篇
- 2025年度文化創(chuàng)意園區(qū)物業(yè)用房移交與知識產(chǎn)權(quán)保護(hù)合同3篇
- 二零二五年度全款購新能源汽車及充電站建設(shè)合同模板3篇
- 二零二五年度農(nóng)機作業(yè)與農(nóng)業(yè)產(chǎn)業(yè)扶貧合作合同3篇
- 2025年度高新技術(shù)園區(qū)融資合同范文匯編3篇
- 二零二五年度公司汽車轉(zhuǎn)讓協(xié)議:適用于汽車租賃公司車輛更新3篇
- 2025年度新能源公司合并投資協(xié)議2篇
- 二零二五年度全日制勞務(wù)合同書(高新技術(shù)企業(yè)研發(fā))2篇
- (八省聯(lián)考)河南省2025年高考綜合改革適應(yīng)性演練 化學(xué)試卷(含答案)
- 2025中國電信山東青島分公司校園招聘高頻重點提升(共500題)附帶答案詳解
- 2025年八省聯(lián)考高考語文作文真題及參考范文
- 新課標(biāo)(水平三)體育與健康《籃球》大單元教學(xué)計劃及配套教案(18課時)
- 開題報告-鑄牢中華民族共同體意識的學(xué)校教育研究
- 計件工勞務(wù)合同范例
- 2024年公交車開通儀式講話例文(4篇)
- 科研倫理與學(xué)術(shù)規(guī)范(研究生)期末試題庫及答案
- 修復(fù)學(xué)全口義齒
- 機械設(shè)備租賃合同范本簡單版(9篇)
- 美甲顧客檔案表Excel模板
評論
0/150
提交評論