2[簡答題]
請使用VC6或使用【答題】菜單打開考生文件夾proj2下的工程proj2。此工程中包含一個程序文件main.cpp,其中有“部門”類Department和“職工”類Staff的定義,還有主函數main的定義。在主函數中定義了兩個“職工”對象,他們屬于同一部門。程序展示,當該部門改換辦公室后,這兩個人的辦公室也同時得到改變。請在程序中的橫線處填寫適當的代碼并刪除橫線,以實現上述類定義。此程序的正確輸出結果應為:
改換辦公室前:
職工號:0789姓名:張三部 門:人事處 辦公室:521
職工號:0513姓名:李四部門:人事處 辦公室:521
改換辦公室后:
職工號:0789姓名:張三部門:人事處 辦公室:311
職工號:0513姓名:李四部 門:人事處 辦公室:311
注意:只在橫線處填寫適當的代碼,不要改動程序中的其他內容。
參考解析:【參考答案】 (1)strcpy(this- >office,office);
(2)return office;
(3)dept(my_dept)
(4)dept.changeOfficeTo( ”311”);
【考點分析】
本題考查的是Department類和Staff類,其中涉及構造函數、strcpy()函數和const函數。復制字符串使用函數strcpy,構造函數的成員列表初始化時不能初始化指針。
【解題思路】
(1)主要考查考生對strcpy函數的掌握情況,根據上一條語句:strcpy(this- >name,name);可知,這條語句復制的是office,即strcpy(this->office,office);。
(2)主要考查考生對成員函數的掌握情況,根據語句的注釋:返回辦公室房號可知,要填寫的是一條return語句。在私有成員里:char office[20];//部門所在辦公室房號,表明office即為辦公室房號。因此直接返回office即可。
(3)主要考查考生對構造函數的掌握情況,根據函數體:
strcpy(this->staff_id,my_id);
strcpy(this->name,my_name);
可知,只有dept沒有初始化,而空格前有字符“:”,這是成員列表初始化的標識符,因此填寫dept(my_dept)即可。
(4)主要考查考生對成員函數的調用的掌握情況,根據題目要求:人事處辦公室由521搬到311。在Department類中有函數void changeOfficeTo(constchar * office)可以修改辦公室的房間號,直接調用即可。
【解題寶典】
主要考查考生對strcpy()函數及構造函數的掌握情況,strcpy(參數一,參數二)函數的功能是復制參數二的字符串給參數一。
微信搜索"考試吧"了解更多考試資訊、下載備考資料
相關推薦: