第 1 頁:基本操作題 |
第 2 頁:簡單應用題 |
第 3 頁:綜合應用題 |
基本操作題
1[簡答題]
請使用VC6或使用【答題】菜單打開考生文件夾proj1下的工程proj1,此工程中含有一個源程序文件proj1.cpp。其中位于每個注釋“// ERROR **********found **********”之后的一行語句存在錯誤。請改正這些錯誤,使程序的輸出結果為:
NUM=0
Value=1
注意:只修改注釋“// ERROR ****found ****”的下一行語句,不要改動程序中的其他內容。
參考解析:【參考答案】 (1)MyClass(int i=0):NUM(0){
(2)void Increment(MyClass&f){f._i++;}
(3)Increment(obj);
【考點分析】
本題考查的是MyClass類,其中涉及友元函數、構造函數、常量數據成員、成員函數和友元函數的調用。友元函數的定義要與函數聲明相呼應,即返回值、參數類型、參數個數要一致。友元函數的調用不需要使用類名和作用域。
【解題思路】
(1)主要考查考生對常量數據成員初始化方法的掌握,常量數據成員的初始化只能通過構造函數的成員初始化列表進行,并且要使用關鍵字const修飾。該題的前一條語句const int NUM;,說明NUM是常量數據成員。
(2)主要考查考生對友元函數的掌握,友元函數的定義與聲明要一致,先看該友元函數的聲明部分:friend void Increment(MyClass& f);,返回類型為void,函數參數為MyClass& f;再比較出錯的語句:void Increment(){f._i++;},錯誤在于該函數沒有參數,應把MyClass & f填在括號內。
(3)主要考查友元函數的調用,友元函數并不屬于類,因此調用友元函數時不需要添加類名及作用域,只需要像調用普通函數一樣即可。
【解題寶典】
類的常量數據成員初始化必須使用成員初始化列表進行,否則必然出錯。友元函數與普通函數的區別在于,友元函數可以通過對象名調用類的全部成員,包括私有成員。所有函數的聲明和定義必須一致,包括函數返回值、參數類型、參數個數及有無const關鍵字。
微信搜索"考試吧"了解更多考試資訊、下載備考資料
相關推薦: