首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC6打开考生文件夹下的源程序文件modil.epp,但该程序运行时有错,请改正程序中的错误,使程序输出的结果为: 10 6 30 2 2 注意:错误的语句在//********error********
使用VC6打开考生文件夹下的源程序文件modil.epp,但该程序运行时有错,请改正程序中的错误,使程序输出的结果为: 10 6 30 2 2 注意:错误的语句在//********error********
admin
2021-05-06
18
问题
使用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全国计算机二级
相关试题推荐
程序流程图中带有箭头的线段表示的是()。
有如下类定义:classSample{public:Sample(intx):ref(x){}//①Sample():ref
请打开考生文件夹下的解决方案文件proj3,其中包含主程序文件main.cpp和用户定义的头文件Array.h,整个程序包含有XArray类的定义和main主函数的定义。请把主程序文件中的XArray类的成员函数sum()的定义补充完整,补充的内容填写在"
在对函数进行原型声明时,下列语法成分中,不需要的是()。
有如下类定义classMyClasspublic:_________Private:intdata;};若要为MyClass类重载流输入运算符>>,使得程序中可以“cin>>obj;
有如下程序:#inc1ude<iostream>#inc1ude<iomanip>usingnamespacestd;intmain(){ints[]={123,234};cout<
如果利用C++流进行输入输出,下面的叙述中正确的是()。
下面描述中,不属于软件危机表现的是()。
从工程管理角度看,软件设计一般分为两步完成,它们是()。
随机试题
关于产后出血的预防,下列说法错误的是()
关于腹膜后间隙肿瘤的CT表现,错误的是:
女性,26岁。三天前行人工流产手术,近二天出现尿频、尿急、尿痛、排尿终末有血块,无腰痛,不发热。尿检:蛋白(±),RBC、WBC满视野。处理
慢性肾盂肾炎的典型临床表现是
常见的散光型灯具有()。
下列关于流动性监管核心指标的说法,不正确的是()。
《深圳市人民政府关于规范住房租赁市场稳定住房租赁价格的意见》的发文字号,格式正确的是()。
把下面的六个图形分为两类,使每一类图形都有各自的共同特征或规律,分类正确的一项是:
Whetherwewantitornotweareallgreedybynature.Fromthemomentweare【C1】______andtothelastdayofourlifewe【C2】___
带256MB存储卡的数码相机拍摄分辨率设定为1 600×1 200(像素),颜色深度为24位,若不采用压缩存储技术,则最多可以存储(12)张照片。
最新回复
(
0
)