首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC6打开考生文件夹下的源程序文件modil.epp,但该程序运行时有错,请改正程序中的错误,使程序输出的结果为: 10 6 30 2 2 注意:错误的语句在//********error********
使用VC6打开考生文件夹下的源程序文件modil.epp,但该程序运行时有错,请改正程序中的错误,使程序输出的结果为: 10 6 30 2 2 注意:错误的语句在//********error********
admin
2021-05-06
25
问题
使用VC6打开考生文件夹下的源程序文件modil.epp,但该程序运行时有错,请改正程序中的错误,使程序输出的结果为:
10
6
30
2
2
注意:错误的语句在//********error********的下面,修改该语句即可。
1 #include
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 i
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<
50 cout<
51 cout<
52 cout<
53 cout<
54 }
选项
答案
(1)typedef int(CMyClass::*FUNC)(int); (2)FUNC func[4]; (3)return(this->*func[i])(j);
解析
CMyClass类有一个成员变量number,多个成员函数分别实现加减乘除功能。使用typedef定义了一个返回值是整型并带有一个整型参数的函数指针,并通过实例化一个容量为4的函数指针数组实现对类中定义的方法的调用。
[解题思路]
(1)在类中定义函数指针须指定类名及指针定义运算符*,因此第1个标识下函数指针正确的定义为“typedef intrCMyClass::*FUNC)(int);”。
(2)函数指针数组本身是数组类型,因此在定义时如果没有初始化,就必须指定数组大小,在本题中因为指针数组包含的指针变量需要指向四种算数运算,因此定义指针数组大小为4,即第2个标识下应改为“FUNC func[4];”。
(3)func是指针数组,因此访问的时候需要有指针运算符“*”,第3个标识下应改成“retum(this->*func
)(j);”。
转载请注明原文地址:https://jikaoti.com/ti/Hih0FFFM
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
给定程序中,函数fun的功能是:将a所指3×5矩阵中第k列的元素左移到第0列,第k列以后的每列元素行依次左移,原来左边的各列依次绕到右边。例如,有下列矩阵:123451234
有如下类声明和函数声明:classBase{intm;public:intn;protected:intp;};classDe
下列因素中,对C++编译器区分重载函数无任何意义的是
有3个关系R、S和T如下:则由关系R、S得到关系T的操作是()。
要使程序的输出结果为Base,则在横线处填写的派生类Derived的继承方式是()。#includeusingnamespacestd;classBase{public:voidprint(){cout
请打开考生文件夹下的解决方案文件proj1,其中定义了一个CD类。程序中位于每个//ERROR**********found**********下的语句行有错误,请加以更正,不得修改程序的其他部分。更正后程序的输出应该是:歌唱祖国30义
if语句的语法格式可描述为:格式1:if()或格式2:if()else关于上面的语法格式,下列表述中错误的是()。
在软件开发中,需求分析阶段产生的主要文档是()。
如果利用C++流进行输入输出,下面的叙述中正确的是()。
随机试题
Mostpatientsrespondtotheawarenessthattheyhaveaterminalillnesswiththestatement,"Ohno,thiscan’thappentome."
既能补肾阳,又能祛风除湿的药物有
男性,73岁,因食管癌行食管部分切除术、食管胃吻合术,术后给予胃肠减压。有关胃肠减压的护理措施正确的是
某洗衣机生产企业为应对市场竞争,近年来一直以降低产品销售价格作为主要竞争策略。为了改善经营业绩,该企业拟调整竞争策略,并为此聘请了一家咨询公司对当地洗衣机市场进行分析。咨询公司从委托单位得到了部分资料,见表1-1。咨询公司用德尔菲法对影响洗衣机
按照原建设部、财政部《住宅共用部位共用设施设备维修基金管理办法》(建住房[1998]1213号)的规定,在销售商品房时,购房者应当按购房款()的比例向售房单位缴交维修资金。
下列句中划线字的意义和用法不同于其他三项的是()。
阅读王安石《游褒禅山记》选段,概括作者在文中表现的观点态度。于是余有叹焉。古人之观于天地、山川、草木、虫鱼、鸟兽,往往有得,以其求思之深而无不在也。夫夷以近,则游者众;险以远,则至者少。而世之奇伟、瑰怪、非常之观,常在于险远,而人之所罕至焉,故非
语言与语言的碰撞和融合是文化交往的一部分。现今世界,这种交往正在变得更频繁、更迅捷,然而从一种语言本身来看,它总是既要保持过去的精华,又要吸收外来因素,否则无法传达新的现实。在这段话里,“语言与语言的碰撞和融合”是指()。
王巴托罗缪之夜
设f(x)=,D为-∞<x<+∞,-∞<y<+∞,则=_______
最新回复
(
0
)