二、程序改錯題
(1)應(yīng)改為“TC(inti):Number(i)”。
(2)應(yīng)刪除“returnNumber;”。
(3)應(yīng)改為“TC*p=newTC(7);”
【解析】本題第1處是聲明構(gòu)造函數(shù),并使用初始化列表完成成員變量的初始化,可知第1處的初始化列表錯誤,正確的應(yīng)該是“TC(inti):Number(i)”。構(gòu)造函數(shù)不能有返回值,不能用return來返回值,故第2處應(yīng)將“returnNumber;”刪除。類實(shí)例在不指定構(gòu)造函數(shù)的情況下,調(diào)用的是默認(rèn)無參數(shù)的構(gòu)造函數(shù),此時成員變量Number是不確定的,在定義對象時,應(yīng)使用已定義的構(gòu)造函數(shù),根據(jù)輸出結(jié)果可知,P指向的對象的Number初始化值為7,故第3處應(yīng)改為“TC*p=newTC(7);”。
三、簡單應(yīng)用題
intresult=0;
for(inti=11;i<=n;i++)
{
if((i%7==O)&&(i==0))
{
result+=i:
}
}
returnresult;
【解析】本題利用循環(huán)查找所有小于等于n的能被7和11整除的數(shù),循環(huán)變量i從最小值11開始,到n結(jié)束,即11<=i<=n。在函數(shù)中定義累加變量result用來保存求和結(jié)果,在循環(huán)體內(nèi),逐個判斷每個i是否能被7和11整除,即(i%7==0)和(i==0)都滿足的話,說明i能同時被7和11整除,將該值加到resuh上,循環(huán)結(jié)束返回result。
四、綜合應(yīng)用題
(1)應(yīng)添加“virtualdoubleGetArea()=0;”。
(2)應(yīng)添加“virtualdoubleGetGirth()=0;”。
(3)應(yīng)添加“myShape=myCircle;”。
(4)應(yīng)添加“myShape=myRectangle;”。
【解析】本題在第1處聲明純虛函數(shù),純虛函數(shù)的定義格式為“virtual<函數(shù)類型><函數(shù)名>(<參數(shù)表>)=0”,由程序后面的函數(shù)體實(shí)現(xiàn)可知求面積純虛函數(shù)的函數(shù)名稱為GetAr-ea,因此第1處應(yīng)添加“virtualdoubleGetArea()=0;”。聲明格式和1處相同,由求周長的函數(shù)具體實(shí)現(xiàn)可知該函數(shù)的名稱為GetGirth,因此第2處應(yīng)添加“virtualdoubleGetGirth()=0;”。主函數(shù)中定義了CMyShape類對象指針myShape,CCir-cle類對象指針myCirele,CRectangle類對象指針myRectan-gle。由類繼承關(guān)系知,在調(diào)用子類的構(gòu)造函數(shù)時,編譯器會自動調(diào)用父類的默認(rèn)構(gòu)造函數(shù)來初始化父類,因此在實(shí)例化類CRectangle和類CCircle的實(shí)例時,抽象父類CMyShape的默認(rèn)構(gòu)造函數(shù)會先被調(diào)用,因此在屏幕上先輸出“在CMy-Shape類構(gòu)造函數(shù)內(nèi)”.然后輸出“在CCircle類構(gòu)造函數(shù)內(nèi)”,實(shí)例化CRectangle對象的過程也是如此。同時由純虛函數(shù)的性質(zhì)知,抽象基類不需要實(shí)現(xiàn)純虛函數(shù),它的實(shí)現(xiàn)是在子類中完成的,但通過用子類實(shí)例隱式轉(zhuǎn)換成基類實(shí)例,可以使得基類實(shí)例具有子類實(shí)例的特性,因此可以訪問子類的成員函數(shù),myShape是基類指針,其虛函數(shù)GetArea和GetGirth沒有實(shí)現(xiàn),要求程序輸出的面積值和周長值,只可能是myShape指向子類對象,調(diào)用子類的函數(shù)GetArea和GetGirth打印輸出,顯然在第3處是myShape指向子類CCircle對象,即“myShape=myCirele;”。同理第4處myShape指向子類CRectangle對象,即第4處應(yīng)添加“myShape=myRectangle;”。
![]() | ![]() .. 定價:¥225 優(yōu)惠價:¥213 更多書籍 |
![]() | ![]() .. 定價:¥133 優(yōu)惠價:¥133.0 更多書籍 |