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