計(jì)算機(jī)二級(jí)C++練習(xí)題:改錯(cuò)題及答案
為了使廣大考生在備戰(zhàn)計(jì)算機(jī)等級(jí)考試時(shí),更快的掌握相應(yīng)知識(shí)點(diǎn),下面是小編搜索整理的計(jì)算機(jī)二級(jí)C++練習(xí)題:改錯(cuò)題及答案,供參考練習(xí),預(yù)?忌鷤兛汲鲎约豪硐氲某煽(jī)!
計(jì)算機(jī)二級(jí)C++練習(xí)題:改錯(cuò)題及答案
使用VC6打開(kāi)考生文件夾下的工程kt8_1,此工程包含一個(gè)源程序文件kt8_1.cpp,但該程序運(yùn)行有問(wèn)題,請(qǐng)改正程序中的錯(cuò)誤,使程序的輸出結(jié)果如下:
f1functionofderive
f2functionofbase
f4functionofbase
源程序文件kt8_1.cpp清單如下:
#include
classbase
{public:
/**********found**********/
voidf1(){cout<<"f1functionofbase"<<ENDL;}
virtualvoidf2(){cout<<"f2functionofbase"<<ENDL;}
virtualvoidf3(){cout<<"f3functionofbase"<<ENDL;}
voidf4(){cout<<"f4functionofbase"<<="">
/**********found**********/
classderive::publicbase
{voidf1(){cout<<"f1functionofderive"<<ENDL;}
voidf2(intx){cout<<"f2functionofderive"<<ENDL;}
voidf4(){cout<<"f4functionofderive"<<="">
voidmain()
{base*p;
deriveobj2;
/**********found**********/
p=obj2;
p->f1();
p->f2();
p->f4();}
【參考答案】
(1)將voidf1(){cout<<"f1functionofbase"<<ENDL;}
改為:virtualvoidf1(){cout<<"f1functionofbase"<<ENDL;}
(2)將classderive::publicbase
改為:classderive:publicbase
(3)將p=obj2;
改為:p=&obj2;
【試題解析】
(1)主要考查對(duì)虛函數(shù)的深刻理解,虛函數(shù)是動(dòng)態(tài)聯(lián)編的基礎(chǔ),也是實(shí)現(xiàn)多態(tài)性的重要方法,它可以根據(jù)不同的`情況動(dòng)態(tài)的選擇執(zhí)行哪一個(gè)函數(shù)。在派生類(lèi)中實(shí)現(xiàn)虛函數(shù)應(yīng)該滿足與基類(lèi)的同名函數(shù)完全相同,并且使用關(guān)鍵字virtual修飾,本題中由輸出結(jié)果中的f1functionofderive可知,必須將基類(lèi)base的成員函數(shù)f1()定義為虛函數(shù);
(2)主要考查對(duì)派生類(lèi)定義格式的掌握,應(yīng)該使用“:”后面是繼承列表,而“::”是作用域符;
(3)主要考查類(lèi)對(duì)象的定義與使用,p是一個(gè)指針類(lèi)型的變量,給它的賦值應(yīng)該是一個(gè)地址,即使用取地址操作符&。
【計(jì)算機(jī)二級(jí)C++練習(xí)題:改錯(cuò)題及答案】相關(guān)文章:
計(jì)算機(jī)二級(jí)C++練習(xí)題:改錯(cuò)題11-19
計(jì)算機(jī)二級(jí)C++練習(xí)題:程序改錯(cuò)題11-21
計(jì)算機(jī)二級(jí)c++試題及答案08-31
計(jì)算機(jī)二級(jí)考試C++試題及答案09-29
計(jì)算機(jī)二級(jí)《C++》上機(jī)試題及答案09-03
計(jì)算機(jī)二級(jí)C++強(qiáng)化試題及答案11-24
計(jì)算機(jī)二級(jí)C++考試試題及答案11-28