首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC6打开考生文件夹下的源程序文件modil.cpp,该程序运行时有错误,请改正其中的错误,使程序正确运行。并且使程序输出的结果为: OK 注意:错误的语句在//********error********的下面,修改该语句即可。
使用VC6打开考生文件夹下的源程序文件modil.cpp,该程序运行时有错误,请改正其中的错误,使程序正确运行。并且使程序输出的结果为: OK 注意:错误的语句在//********error********的下面,修改该语句即可。
admin
2015-05-30
21
问题
使用VC6打开考生文件夹下的源程序文件modil.cpp,该程序运行时有错误,请改正其中的错误,使程序正确运行。并且使程序输出的结果为:
OK
注意:错误的语句在//********error********的下面,修改该语句即可。
1 #include
2 class CBase
3 {
4 publiC:
5 CBase()
6 {
7 a=b=0 ;
8 }
9 private:
10 int a,b;
11 };
12 class CDerivel:public CBase
13 {
14 public:
15 CDerivel()
16 {
17 }
18 //********error********
19 virtual void func(),
20 };
21 class CDerive2:public CDerivel
22 {
23 public:
24 CDerive2()
25 {
26 a=0;
27 b=0;
28 }
29 void func()
30 {
31 //********error********
32 cout<<"OK"
33 }
34 private:
35 int a;
36 int b,
37 };
38 void main()
39 {
40 CDerive2 obj,
41 //********error********
42 CDerivel *p =(CDerivel*)obj ;
43 p->func();
44 }
选项
答案
(1)virtual void func()=0 ; (2)cout<<"OK"<
解析
程序中定义了类CBase、CDerivel和CDerive2,类CDerive1公有派生于类CBase,CDerive2公有派生于类CDerive1,在类CDerive1中定义了虚函数func(),但是没有给出具体实现,派生类CDerive2中给出了func()函数的具体实现,因此CDerivel类中的func()函数是纯虚函数。
[解题思路]
(1)由审题分析可知,CDerivel类中的func()函数是纯虚函数,纯虚函数的定义格式为:virtual<函数类型><函数名>(<参数表>)=0,因此第1个标识下应为“virtual voidfunc()=0;”。func0函数没有参数表。
(2)编译程序后发现第2个标识下有错误,cout流中的数据是用流插入运算符“<<”顺序加入的,因此“<”不正确,应改成“cout<<"OK"<
(3)函数的调用方式有2种:非多态调用和多态调用,非多态调用是指不使用指针或引用的直接调用,多态调用是指通过对象的指针或引用的调用,在主函数中定义了CDerivel木p,P是指向基类CDerivel的指针,因此是多态调用方式,即通过对象的指针来调用,应该把派生类对象的地址赋给P,而不是对象名,因此第3个标识下应改为“CDerivel *P=(CDerivel*)&obj;”。
转载请注明原文地址:https://kaotiyun.com/show/gPNp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
语句ofstreamf("SALARY.DAT",ios::app|ios::binary);的功能是建立流对象f,试图打开文件SALARY.DAT并与之连接,并且()。
使用fstream流类定义流对象并打开磁盘文件时,文件的隐含打开方式为()。
下列关于运算符重载的描述中,正确的是()。
阅读以下程序,此程序的功能是【】。#include<iostream.h>voidmain(){intn,i,j;for(i=100;i<999;i+100)for(j
不能作为函数重载的判断依据的是()。
数据库系统与文件系统的最主要区别是()。
程序段的输出结果是【】。inta=12,b=12;cout<<--a<<“”<<++b;
以下函数模板max的功能是:返回数组a中最大元素的值。请将横线处缺失部分补充完整。template<typenameT>Tmax(Ta[],intn){Tm=a[0];for(inti=1;i<n;i++)
随机试题
女性不孕的常见原因有()、()、()、()、()。
男,52岁。患皮肤病10余年,反复发作,累及全身。躯干及四肢伸侧分布大小不一的红色丘疹、斑块,肘、膝、腰、骶尾部更为明显,表面覆有分层云母样鳞屑;鳞屑易剥除,下方呈发亮淡红色薄膜状及点状出血。头皮皮损表面有较厚鳞屑,头发成束。手足甲呈凹陷点,甲床肥厚。
在脂肪酸的合成中,每次碳链的延长都需要()直接参加。
慢性支气管炎的缓解期,时问应是
基金投资者应承担的义务不包括()。
《物业管理条例》中法律责任的特点有()。
个人品德的核心成分是()。
A、 B、 C、 D、 B将每个图形看成刻度尺,从左到右,0一8标数,第一个图形在2、4、6位置上标记,且2+4=6,题干图形都有类似的规律,选项中只有B符合。
Soitistoday.Scheduledisasterfunctionalmisfits,andsystembugsallarisebecausethelefthanddoesn’tknowwhattheright
Whicharrangementistakingplaceatthetimethatwasplanned?
最新回复
(
0
)