第 1 頁:基本操作題 |
第 2 頁:簡單應用題 |
第 3 頁:綜合應用題 |
2 [簡答題]
請使用VC6或使用【答題】菜單打開考生文件夾proj2下的工程proj2,其中定義了Component類、Composite類和Leaf類。Component是抽象基類,Composite和Leaf是Component的公有派生類。請在橫線處填寫適當的代碼并刪除橫線,以實現上述類定義。此程序的正確輸出結果應為:
Leaf Node
注意:只能在橫線處填寫適當的代碼,不要改動程序中的其他內容,也不要刪除或移動“// ****found ****”。
參考解析:
【參考答案】 (1)virtual void print() const=0;
(2)Component* child
(3)cout <<”leaf Node”<
【考點分析】
本題考查抽象類Component類及其派生類Composite和Leaf,其中涉及純虛函數和成員函數。純虛函數要根據在派生類中該函數的返回值、參數、有無const來確定。
【解題思路】
(1)主要考查考生對純虛函數的掌握,題目要求聲明純虛函數print()。在其派生類中print()函數的定義為virtual void print()const,由此可知純虛函數為virtual void print()const=0。
(2)主要考查考生對成員函數的掌握,題目要求填寫函數void setChild的形參,由setChild的函數體可知形參為child,再看類的私有成員m_child的定義:Component* m_child;。由此可知形參為:Component* child。
(3)主要考查考生對純虛函數的掌握,先看主函數的程序:
第一條和第二條語句都是定義語句,第三條語句調用函數setChild,由setChild函數的定義可知,comp中的m_child等于node,第四條語句定義了個指針p指向comp的地址,也就是node,最后一條語句通過指針p調用函數print,也就是調用類Leaf的函數print,因為題目要求輸出:Leaf Node,因此在這里添加語句:cout<<”Leaf Node”<
微信搜索"考試吧"了解更多考試資訊、下載備考資料
相關推薦: