應(yīng)添加“virtualvoidGetNamt!=0;”。 (2)應(yīng)添加“constchar*GetName2”。 (3)應(yīng)添加“TC2(char*str
應(yīng)添加“virtualvoidGetNamt!=0;”。 (2)應(yīng)添加“constchar*GetName2”。 (3)應(yīng)添加“TC2(char*str)”。 (4)應(yīng)添加“m_str[i]=0;”。 【解析】本題第1處要求“在類TC1中定義接口函數(shù)GetName,為純虛函數(shù)”。在C++中,在基類中用virtual聲明成員函數(shù)為虛函數(shù)。純虛函數(shù)是在聲明虛函數(shù)時(shí)被“初始化”為0的函數(shù),即“virtualvoidGetName=0;”。第2處要求“函數(shù)GetName2實(shí)現(xiàn)獲得名字的緩存,但只獲得讀允許操作這個(gè)緩存”。只能引用數(shù)據(jù)成員,而不能修改,所以使用常成員函數(shù),其一般形式為“const函數(shù)類型函數(shù)名”,即“constchar*GetName2”。第3處要求“實(shí)現(xiàn)TC2的構(gòu)造函數(shù)”。TC2的構(gòu)造函數(shù)與類TC2的名稱應(yīng)該相同,而且第3處的大括弧中是對(duì)字符數(shù)組str的操作,所以類TC2的構(gòu)造函數(shù)中的參數(shù)為str,即這里補(bǔ)全為“TC2(char*str)”。第4處要求“完成TC2的構(gòu)造函數(shù),實(shí)現(xiàn)對(duì)名字的處理”,補(bǔ)全類TC2的構(gòu)造函數(shù),構(gòu)造函數(shù)中的名字變量str對(duì)應(yīng)于類TC中的成員變量m_str,所以這里補(bǔ)全變量賦值操作“m_str[i]=0;”。
正確答案:使用VC++6.0打開考生文件夾下的源程序文件3.cpp。程序通過繼承關(guān)系,實(shí)現(xiàn)對(duì)姓名的控制。類TC1實(shí)現(xiàn)對(duì)名字訪問的接口,TC2實(shí)現(xiàn)對(duì)名字的設(shè)置和輸出。 程序輸出為 TC2NameMay其中定義的類并不完整,按要求完成下列操作,將類的定義補(bǔ)充完整。 (1)在類TCl中定義接口函數(shù)GetName為純虛函數(shù)。請(qǐng)?jiān)谧⑨?后添加適當(dāng)?shù)恼Z句。 (2)函數(shù)GetName2用于獲得名字的緩存,但只獲得允許讀操作這個(gè)緩存,請(qǐng)?jiān)谧⑨?后添加適當(dāng)?shù)恼Z句。 (3)實(shí)現(xiàn)TC2的構(gòu)造函數(shù),請(qǐng)?jiān)谧⑨?后添加適當(dāng)?shù)恼Z句。 (4)完成
詞條內(nèi)容僅供參考,如果您需要解決具體問題
(尤其在法律、醫(yī)學(xué)等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。