问答题 使用VC6打开考生文件夹下的源程序文件modil.cpp,但该程序运行时有错,请改正程序中的错误,使程序输出的结果为: 10 6 30 2 2注意:错误的语句在∥********error********的下面,修改该语句即可。#include<iostream.h>class CMyClasS{private: int number; int Add(int i) { return number+=i; } int Sub(int i) { return number一=i; } int Mul(int i) { return number*=i; } int Div(int i) { if(i!=0) { return number/=i; } else return number; } ∥********error******** typedef int(FUNC)(int); ∥********error******** FUNC func[];public: CMyClass() { func[0]=CMyClass::Add; func[1]=CMyClass::Sub; func[2]=CMyClass::Mul; func[3]=CMyClass::Div; number=0; } int CallFunction(int i,int j) { ∥********error******** return(func[i])(j); }};void mein(){ CMyClas S myobj; cout<<myobj.CallFunction(0,10)<<end1; cout<<myobj.CallFunction(1,4)<<end1; cout<<myobj.CallFunction(2,5)<<endl; cout<<myobj.CallFunction(3,15)<<endl; cout<<myobj.CallFunction(3,0)<<endl;}
【正确答案】正确答案:(1)typedef int(CMyClasS::*FUNC)(int); (2)FUNC func[4]; (3)return(thiS一>*func[i])(j);
【答案解析】解析:CMyClass类有一个成员变量number,多个成员函数分别实现加减乘除功能。使用typedef定义了一个返回值是整型并带有一个整型参数的函数指针,并通过实例化一个容量为4的函数指针数组实现对类中定义的方法的调用。