使用VC++6.0開啟考生資料夾下的源程式檔案,該程式執行時有錯誤,請改正其中的錯誤,使程式正確執行,並且使程式輸出的結果為
0K
注意:錯誤的.語句在//******error******的下面,修改該語句即可。
【試題程式】:
#include
classTC
{
public:
TC()
{
a=b=0:
}
private:
inta,b;
};
classTCl:publicTC
{
public:
TC1()
{
}
//******error******
virtualvoidfunc();
};
classTC2:publicTCl
{
public:
TC2()
{
a=0:
b=0:
}
voidfunc()
{
//******error******
cout<<"OK" }
private:
inta;
intb;
};
voidmain()
{
TC20bj;
//******error******
TCl*p=(TCl*)obj;
p->func();
}
(1)應改為“virtualvoidfunc()=0;”。
(2)應改為“cout<<"0K"<(endl;”。
(3)應改為“TCl*p=(TCl*)&obj;”。
【解析】
本題中TCl類中的func函式是純虛擬函式,純虛擬函式的定義格式為virtual<函式型別><函式名>((引數表>)=0”,因此第1處的語句應為“virtualvoidfunc()=0;”。func函式沒有引數表。編譯程式後發現第2處的語句有錯誤,cout流中的資料是用流插入運算子“<<”順序加入的,因此“<”不正確,應改成“cout<<"0K"<