首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC6打开考生文件夹下的源程序文件modi1.cpp,但该程序运行时有错,请改正程序中的错误,使程序输出的结果为: 10 6 30 2 2 注意:错误的语句在//******error******的下面,
使用VC6打开考生文件夹下的源程序文件modi1.cpp,但该程序运行时有错,请改正程序中的错误,使程序输出的结果为: 10 6 30 2 2 注意:错误的语句在//******error******的下面,
admin
2019-01-19
77
问题
使用VC6打开考生文件夹下的源程序文件modi1.cpp,但该程序运行时有错,请改正程序中的错误,使程序输出的结果为:
10
6
30
2
2
注意:错误的语句在//******error******的下面,修改该语句即可。
1 #include<iostream.h>
2 class CMyClass
3 {
4 private:
5 int number;
6 int Add(int i)
7 {
8 return number+=i;
9 }
10 int Sub(int i)
11 {
12 return number-=i;
13 }
14 int Mul(int i)
15 {
16 return number*=i;
17 }
18 int Div(int i)
19 {
20 if(i!=0)
21 {
22 return number/=i;
23 }
24 else
25 return number;
26 }
27 //******error******
28 typedef int(FUNC)(int);
29 //******error******
30 FUNC func[];
31 public:
32 CMyClass()
33 {
34 func[0]=CMyClass::Add;
35 func[1]=CMyClass::Sub;
36 func[2]=CMyClass::Mul;
37 func[3]=CMyClass::Div;
38 number=0;
39 }
40 int CallFunction(int i,int j)
41 {
42 //******error******
43 return(func
)(j);
44 }
45 };
46 void main()
47 {
48 CMyClass myobj;
49 cout<<myobj.CallFunction(0,10)<<end1;
50 cout<<myobj.CallFunction(1,4)<<end1;
51 cout<<myobj.CallFunction(2,5)<<end1;
52 cout<<myobj.CallFunction(3,15)<<end1;
53 cout<<myobj.CallFunction(3,0)<<end1;
54 }
选项
答案
(1)typedef int(CMyClass::*FUNC)(int); (2)FUNC func[4]; (3)return (this->*func[i])(j);
解析
CMyClass类有一个成员变量number,多个成员函数分别实现加减乘除功能。使用typedef定义了一个返回值是整型并带有一个整型参数的函数指针,并通过实例化一个容量为4的函数指针数组实现对类中定义的方法的调用。
(1)在类中定义函数指针须指定类名及指针定义运算符木,因此第1个标识下函数指针正确的定义为“typedefint(CMyClass::*FUNC)(int);”。
(2)函数指针数组本身是数组类型,因此在定义时如果没有初始化,就必须指定数组大小,在本题中因为指针数组包含的指针变量需要指向四种算数运算,因此定义指针数组大小为4,即第2个标识下应改为“FUNC func[4];”。
(3)func是指针数组,因此访问的时候需要有指针运算符“*”,第3个标识下应改成“return(this->*func
)(j);”。
转载请注明原文地址:https://kaotiyun.com/show/SgAp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
即当基类本身也是某一个类的派生类时,底层的派生类也会自动继承间接基类的成员,这说明继承具有
已知一函数的形参说明为intarr[5][6],则与此等效的形参说明为
冒泡排序算法在最好的情况下的元素交换次数为______。
下列程序中下画线处应填入的语句是classBase{public:voidfun(){cout<<"Baseoffun"<<endl;}};classDerived:publ
下列数据结构中按“先进先出”原则组织数据的是
将E-R图转换到关系模式时,实体与联系都可以表示成
在长为64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为
在数据库系统中,用户所见的数据模式为
数据结构分为逻辑结构和存储结构,循环队列属于______结构。
关于关键字class和typename,下列说法中正确的是
随机试题
出版物生产成本中的直接成本包括()等项目。
A.弥散障碍B.第一秒用力呼气率降低C.两者均有D.两者均无支气管哮喘
当设计无具体要求时,对一、二级抗震等级的框架结构,其纵向受力钢筋检测所得的强度实测值应符合“钢筋抗拉强度实测值与屈服强度实测值的比值不应大于1.25,屈服强度实测值与强度标准值的比值不应小于1.3”的规定。()
按照住房城乡建设部、财政部《关于印发的通知》(建标[2013]44号)的规定,对建筑以及材料、构件和建筑安装物进行一般鉴定、检查所发生的费用,应在()中列支。
商业银行申请开展个人理财业务,应当向中国银监会报送的材料包括()。
(2017年)增值税一般纳税企业以支付现金方式取得联营企业股权的,所支付的与该股权投资直接相关的费用应计入当期损益。()
土地增值税纳税人是法人的,当转让的房地产坐落地与其机构所在地或经营所在地一致时,在办理税务登记的原管辖税务机关申报纳税即可。()
关于“重证据,重调查研究,严禁逼供信”的政策,下列说法错误的是()。
(厦门大学2011年初试真题)根据个人所得税法的规定,下列是个人所得税纳税人的有()。
下列变量名中,合法的()。A)B)C)D)
最新回复
(
0
)