首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC6打开考生文件夹下的源程序文件modi1.cpp,该程序运行时有错误,请改正其中的错误,使程序正确运行。并且使程序输出的结果为: OK 注意:错误的语句在//******error******的下面,修改该语句即可。 1 #inc
使用VC6打开考生文件夹下的源程序文件modi1.cpp,该程序运行时有错误,请改正其中的错误,使程序正确运行。并且使程序输出的结果为: OK 注意:错误的语句在//******error******的下面,修改该语句即可。 1 #inc
admin
2019-05-14
34
问题
使用VC6打开考生文件夹下的源程序文件modi1.cpp,该程序运行时有错误,请改正其中的错误,使程序正确运行。并且使程序输出的结果为:
OK
注意:错误的语句在//******error******的下面,修改该语句即可。
1 #include<iostream.h>
2 class CBase
3 {
4 public:
5 CBase()
6 {
7 a=b=0;
8 }
9 private:
10 int a,b;
11 };
12 class CDerive1:public CBase
13 {
14 public:
15 CDerivel()
16 {
17 }
18 //******error******
19 virtual void func();
20 };
21 class CDerive2:public CDerive1
22 {
23 public:
24 CDerive2()
25 {
26 a=0;
27 b=0;
28 }
29 void func()
30 {
31 //******error******
32 cout<<’’OK’’<end1;
33 }
34 private:
35 int a;
36 int b;
37 };
38 void main()
39 {
40 CDerive2 obj;
41 //******error******
42 CDerive1 *p =(CDerivel*)obj;
43 p->func();
44 }
选项
答案
(1)virtual void func()=0; (2)cout<<’’OK’’<<end1; (3)CDerivel *p=(CDerive1 *) &obj;
解析
程序中定义了类CBase、CDerive1和CDerive2,类CDerive1公有派生于类CBase,CDerive2公有派生于类CDerive1,在类CDerive1中定义了虚函数func(),但是没有给出具体实现,派生类CDerive2中给出了func()函数的具体实现,因此CDerive1类中的func()函数是纯虚函数。
(1)由审题分析可知,CDerive1类中的func()函数是纯虚函数,纯虚函数的定义格式为:virtual<函数类型><函数名>(<参数表>)=0,因此第1个标识下应为“virtual void func()=0;”。func()函数没有参数表。
(2)编译程序后发现第2个标识下有错误,cout流中的数据是用流插入运算符“<<”顺序加入的,因此“<”不正确,应改成“cout<<"OK’’<<end1;”。
(3)函数的调用方式有2种:非多态调用和多态调用,非多态调用是指不使用指针或引用的直接调用,多态调用是指通过对象的指针或引用的调用,在主函数中定义了CDerive1*p,p是指向基类CDerive1的指针,因此是多态调用方式,即通过对象的指针来调用,应该把派生类对象的地址赋给p,而不是对象名,因此第3个标识下应改为“CDerive1 *p=(CDerive1*)&obj;”。
转载请注明原文地址:https://kaotiyun.com/show/SE8p777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
非成员函数应该声明为类______函数才能访问该类的私有成员。
有如下程序段:charC[20]="examination";C[4]=0;cout<<c<<endl;这个程序的输出结果是______。
在下面的类定义中,横线处应填入的内容是()。classFred{public:voidprint(){cout<<data<<end1;}voidsetData(doubled}{data
运算符函数调用格式的表达式“y/x++”与表达式“y.operator/(operator++(x,0))”的含义相同,由此可看出()。
关于函数重载,下列叙述中错误的是()
有如下程序:#include<iostream>usingnamespacestd;classTestClass{public;~TestClass(){cout<<"BASE:;}};cla
下面关于构造函数和析构函数的描述,错误的是()。
分析下面程序,该程序的运行结果是()。#include<iostream.h>classTestClass{public;staticintm;TestClass(){m++;
在数据库系统的组织结构中,下列()映射把用户数据库与概念数据库联系了起来。
有如下程序:#include<iostream>usingnamespacestd;classBase{public;intm,n;};classDerived1:______Base{};
随机试题
A、药物治疗如激素、a受体阻滞剂B、导尿C、前列腺切除术或经尿道电切术前列腺D、膀胱造瘘E、抗生素男性,70岁,近两年尿频显著,排尿费力,渐加重,不能排尿一天,来急诊______。
在护理工作中,发生差错事故时应首先
下列关于建筑工程质量验收程序的规定叙述正确的是( )。
合同被仲裁机构裁决撤销后,追究合同相对人应承担责任的起始时间是从()之日起开始。
3月1日,某投资者开仓持有3张3月份的恒生指数期货合约多头头寸和2张4月份的恒生指数期货合约空头头寸,其开仓价分别为15125点和15200点,该日结算价分别为15285点和15296点。3月2日,若该投资者继续持有上述头寸,该日3月和4月合约的结算价
2013年1月,B公司董事会批准了一项股份支付协议。协议规定,2013年1月1日,B公司为其100名中层以上管理人员每人授予100份现金股票增值权,这些人员从2013年1月1日起必须在该公司连续服务3年,即可自2015年12月31日起根据股价的增长幅度获得
把下面的六个图形分为两类,使每一类图形都有各自的共同特征或规律,分类正确的项是:
Indevelopingamodelofcognition,wemustrecognizethatperceptionoftheexternalworlddoesnotalwaysremainindependento
A、 B、 C、 D、 D稀疏索引是指如果只是一部分查找码的值有对应的索引记录,则该索引为稀疏索引;稠密索引是如果数据文件中的每一个查找码值在索引文件中都对应一个索引记录,则该索引为稠密索引;对于数据文件和它
将单位内部的多台PC计算机互连成一个局域网所需使用的设备是( )。
最新回复
(
0
)