程序改错题
使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错,请改正程序中的错误,使程序输出的结果为
10
6
30
2
2
注意:错误的语句在//******error******的下面,修改该语句即可。
试题程序:
#include
classTC
{
private:
intnumber;
intAdd(inti)
{
returnnumber+=i:
}
intSub(inti)
{
returnnumber-=i:
}
intMul(inti)
{
returnnumber*=i:
}
intDiv(inti)
{
if(i!=O)
{
returnnumber/=i;
}
else
returnnumber;
}
//******error******
typedefint(FUNC)(int);
//******error******
FUNCfunc[];
public:
TC()
{
fune[0]=TC::Add;,
fund[1]=TC::Sub;
func[2]=TC::Mul;
func[3]=TC::Div;
number=0;
}
intCallFunetion(inti,intj)
{
//******error******
return(func[i])(j);
}
};
voidmain()
{
TCmyobj;
cout<<MYOBJ.CALLFUNCTION(0,10)<<ENDL;< p>
cout<<MYOBJ.CALLFUNCTION(1,4)<<ENDL;< p>
cout<<MYOBJ.CALLFUNCTION(2,5)<<ENDL;< p>
cout<<MYOBJ.CALLFUNCTION(3,15)<<ENDL;< p>
cout<<MYOBJ.CALLFUNCTION(3,O)<<ENDL;< p>
}
答案:(1)应改为:“typedefint(TC::*FUNC)(int);”。
(2)应改为:“FUNCfunc[4];”。
(3)应改为:“return(this->*fund[i])(j);”。
点击加载更多评论>>