首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC6打开考生文件夹下的源程序文件modi1.cpp,但该程序运行时有错,请改正程序中的错误,使程序输出的结果为: 10 6 30 2 2 注意:错误的语句在//******error******的下面,修改该语句即可。 #include<iostre
使用VC6打开考生文件夹下的源程序文件modi1.cpp,但该程序运行时有错,请改正程序中的错误,使程序输出的结果为: 10 6 30 2 2 注意:错误的语句在//******error******的下面,修改该语句即可。 #include<iostre
admin
2016-10-28
40
问题
使用VC6打开考生文件夹下的源程序文件modi1.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 CaliFunction(int i,int j)
{
//******error******
return(func
)(j);
}
};
void main()
{
CMyClass myobj;
cout<<myobj.CallFunction(0,10)<<endl;
cout<<myobj.CallFunction(1,4)<<endl;
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);
解析
(1)在类中定义函数指针须指定类名及指针定义运算符*,因此第1个标识下函数指针正确的定义为“typedef int (CMyClass::*FUNC)(int);”。
(2)函数指针数组本身是数组类型,因此在定义时如果没有初始化,就必须指定数组大小,在本题中因为指针数组包含的指针变量需要指向四种算数运算,因此定义指针数组大小为4,即第2个标识下应改为“FUNC func[4];”。
(3)func是指针数组,因此访问的时候需要有指针运算符“*”,第3个标识下应改成“return(this->func
)(j);”。
转载请注明原文地址:https://www.kaotiyun.com/show/YKNp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
下面关于对象概念的描述中,()是错误的。
假设线性表的长度为n,则在最坏情况下,冒泡排序需要的比较次数为
有以下程序:#include<iostream>#include<fstream>usingnamespacestd;intmain(){fstreamfile;fil
模块的独立性一般用两个准则来度量,即模块间的【】和模块的内聚性。
下列类的定义中,有()处语法错误。classBase {public:Base(){}Base(inti){data=i;
有以下程序:#include<iostream.h>classA{inta;public:A(inti){a=i;}void
下列有关析构函数的说法中,错误的是()。
下面程序的运行结果为#include<iostream,h>classA{public:A(){cout<<"1";}~A(){cout<<"2";}};
语句int*i;i=newint[10];,释放指针i的语句是【】。
当循环队列非空且队尾指针等于队头指针时,说明循环队列已满,不能进行入队运算。这种情况称为【】。
随机试题
屈节辱命,虽生何面目以归汉?节:
关于临产后宫颈的变化,正确的是
建筑业企业资质证书有效期为()。
某外贸公司采取隐匿财产的手段,使税务机关无法追缴该公司所欠缴的税款11万元。根据《刑法》的规定,该公司的行为构成的罪名是()。
劳动合同被确认为无效,劳动者已经付出劳务的,用人单位应向劳动者支付劳动报酬。()
下列二级主题不属于“生物圈中的绿色植物”主题的是()。
(1995年)假设函数f(x)和g(x)在[a,b]上存在二阶导数,并且g"(x)≠0,f(a)=f(b)=g(a)=g(b)=0,试证:在开区间(a,b)内至少存在一点ξ,使
以下是学生选课系统中“学生成绩查询”交互行为的描述,请仔细阅读程序并完成要求。交互开始时,终端上显示首页,用户选择“查询”请求后,显示“请输入学号”。在用户输入学号后,系统核对学生学号:若输入的学号不正确,则显示“输入的学号不正确”,此次查询取消,
Sixpeopleweretravellinginacompartment(包厢)onatrain.Fiveofthemwerequietandwellbehaved,butthesixthwasarude
Forthousandsofyearscometshadbeenamysteryto【M1】______man.Theytravelacrosstheskyvery
最新回复
(
0
)