首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC6打开考生文件夹下的源程序文件modi3.cpp,其中定义了类baseA、priA1和priA2,其中priA1类由baseA类公有派生,priA2类由priA1类公有派生。上述三个类的定义并不完整,请按要求完成下列操作,将程序补充完整。
使用VC6打开考生文件夹下的源程序文件modi3.cpp,其中定义了类baseA、priA1和priA2,其中priA1类由baseA类公有派生,priA2类由priA1类公有派生。上述三个类的定义并不完整,请按要求完成下列操作,将程序补充完整。
admin
2019-06-05
69
问题
使用VC6打开考生文件夹下的源程序文件modi3.cpp,其中定义了类baseA、priA1和priA2,其中priA1类由baseA类公有派生,priA2类由priA1类公有派生。上述三个类的定义并不完整,请按要求完成下列操作,将程序补充完整。
程序输出结果如下:
10
5
10 5 7
(1)定义类baseA的构造函数,该构造函数有一个整型的参数m,在构造函数中请将m赋值给数据成员a。请在注释“//********1********”之后添加适当的语句。
(2)定义类priA1的构造函数,该构造函数有两个整型的参数m和n,在构造函数中请将m赋值给数据成员b,将n作为基类baseA构造函数的参数值传入。请在注释“//********2********”之后添加适当的语句。
(3)定义类priA2的构造函数,该构造函数有三个整型的参数m,n和k,在构造函数中请将m赋值给数据成员c,将n和k分别赋值给基类priAl构造函数的参数m和n。请在注释“//********3********”之后添加适当的语句。
(4)完成类priA2的成员函数show的定义,该函数调用基类成员函数,输出基类私有成员a和b及类priA2自身的数据成员c的值,上述三个值在输出时以空格隔开。请在注释“//********4********”之后添加适当的语句。
注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
1 #include<iostream.h>
2 class baseA
3 {
4 int a;
5 public:
6 //********1********
7
8 int geta(){return a;)
9 };
10 class priA1:public baseA
11 {
12 int b;
13 public:
14 //********2********
15
16 int getb(){return b;}
17 };
18 class priA2:public priA1
19 {
20 int c;
21 public:
22 //********3********
23
24 void show()
25 {
26 //********4********
27
28 }
29 };
30 void main()
31 {
32 priA2 a(7,5,10);
33 cout<<a.geta()<<end1;
34 cout<<a.getb()<<end1;
35 a.show();
36 }
选项
答案
(1)添加语句:baseA(int m){ a=m;} (2)添加语句:priAl(int m,int n):baseA(n){b=m;} (3)添加语句:priA2(int m,int n,int k):priA1(n,k){c=m;} (4)添加语句:cout<<geta()<<’’’’<<getb()<<’’ ’’<<c<<end1;
解析
程序当中定义了类baseA、priA1和priA2,其中priA1类由baseA类公有派生,pfiA2类由priA1类公有派生。构造函数是类的一种特殊的成员函数,其函数名和类名一致。构造函数可以带参数也可以不带参数,带参数的构造函数根据构造函数内部赋值语句可知其参数形式。公有派生类可以访问基类的公有成员,因此pfiA2类可以调用类baseA的geta()函数和priA1类的getb()函数,通过调用这两个函数得到基类私有成员a和b。
(1)根据题目1要示,构造函数名和类名一致,显然baseA构造函数名为baseA(),在baseA()中通过参数m完成对成员变量a的赋值,因此构造函数名为baseA(int m),在函数内部对成员a赋值,故第1个标识下应添加“baseA(int m){a=m;}”。
(2)根据题目2要示,构造函数形式为priA1(intm,int n),m赋值给priA1类成员b,将n作为基类baseA构造函数的参数值传入,故第2个标识下应添加“priA1(int m,int n):baseA(n){b=m;}”。
(3)根据题目3要示,函数形式为priA2(int m,intn,int k),在构造函数中将m赋值给数据成员c,将n和k分别赋值给基类priA1构造函数的参数m和n,因此第3个标识下应添加“pfiA2(int m,int n,intk):priA1(n,k){c=m;}”。
(4)根据题目4要示,priA2类公有派生于priA1,而priAl公有派生于baseA,因此在priA2类中可以调用基类的geta()和getb()来获得基类私有成员a和b,再输出priA2的私有成员c即满足要求,因此第4个标识下应添加“cout<<geta()<<’’ ’’r<getb()<<’’ ’’<<c<<end1;”。
转载请注明原文地址:https://kaotiyun.com/show/V18p777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
白箱法白箱测试是根据程序内部逻辑结构的分析来选取测试用例。由于测试用例对程序的逻辑覆盖程序决定了测试的完全性的程度,因此白箱测试也称为逻辑覆盖测试。
下面不属于C++的预定义的流对象是()。A)cinB)iostreamC)clogD)Celt
下列关于抽象类的表述中正确的是()。A)派生类必须要实现作为基类的抽象类中的纯虚函数B)抽象类的成员函数至少有一个没实现C)抽象类不可能用来定义对象D)派生类不能成为抽象类
下面类的声明中的几个语句,正确的是(设定语句是主函数中的语句)()。classTestClass{private:intdata;public:TestClass(intg_data)
下列程序执行后,输出的结果是()。intx=-5,y=0;while(++x)y++;cout<<y<<end1;A)1B)2C)4D)5
A、 B、 C、 D、 B对二叉树的访问有3种方式,其中任意的两种可惟一确定一颗二叉树。但无论是前序、后序还是中序遍历二叉树时,其区别在于访问根的先后次序不同,而访问叶结点的顺序完全相同。
下列程序的输出结果为-5/8-3/4,请将横线处的缺失部分补充完整。#include<iostream>usingnamespacestd;classFraction{//"分数"类public:Fractio
下列程序的输出结果为12.324.6,请将横线处的缺失部分补充完整。#include<iostream>usingnamespacestd;classBase{public:Base(intA):id
假设线性表的长度为n,则在最坏情况下,冒泡排序需要的比较次数为
随机试题
Whatpersonalqualitiesaredesirableinateacher?Ithinkthefollowingwouldbegenerallyaccepted.Firstly,ateachersho
关于Stokes定理说法正确的是
小儿睡时露睛,多因
促进排卵和黄体生成的激素为
在应用动态控制原理控制建设工程项目目标时,调整项目组织结构、管理职能分工属于()措施。
A企业2017年度的财务会计报告于2018年4月15日批准报出。2018年2月18日,因质量原因,客户将2017年12月10日购入的一台大型设备(达到重要性要求)退回。关于产品退回,下列说法中,正确的是()。
老年爵士乐队成立于1982年,是上海最负盛名的爵士乐队之一。()
2005年5月份全国基本型乘用车的产量是:与2005年同期比较,2006年前5个月销量增幅最大的车型是:
A、Therewardsfortheleader.B、Thereputationofaleader.C、Theapproachtoachievinggoals.D、Thepaymentofemployees.C本题为领
Geographyisthestudyoftherelationshipbetweenpeopleandtheland.Geographers(地理学家)compareandcontrast【C1】______places
最新回复
(
0
)