首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC6打开考生文件夹下的源程序文件modi3.cpp,其中定义了类baseA、priA1和priA2,其中priA1类由baseA类公有派生,priA2类由priA1类公有派生。上述三个类的定义并不完整,请按要求完成下列操作,将程序补充完整。
使用VC6打开考生文件夹下的源程序文件modi3.cpp,其中定义了类baseA、priA1和priA2,其中priA1类由baseA类公有派生,priA2类由priA1类公有派生。上述三个类的定义并不完整,请按要求完成下列操作,将程序补充完整。
admin
2019-06-05
66
问题
使用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全国计算机二级
相关试题推荐
下面关于指针的说法中错误的是()。A)在指针定义的同时可以对其进行初始化B)指针根据其所指向变量的类型的不同,所占用内存大小也不同C)指针中存放的是内存单元的地址D)相同类型的指针之间可以相互赋值
有如下程序:#include<iostream>usingnamespacestd;classBase{protected:Base(){cout<<’Base’;}Base(char
有如下定义:intb[10]={1,2,3,4,5,6,7,8,9,10},*q=b;则数值为8的表达式是()。A)*q+8B)*(q+7)C)*q+=8D)q+7
下列的方法中,不属于软件调试技术的是()。A)强行排错法B)集成测试法C)回溯法D)原因排除法
A、 B、 C、 D、 C结构化分析方法是面向数据流进行需求分析的方法,采用自顶向下、逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。
A、 B、 C、 D、 A要对线性表进行二分法查找,对线性表有两个要求:第一,要求线性表是按顺序方式存储的;第二,要求线性表中的元素是按照从小到大的顺序排好序。
有如下程序:#include<iostream>usingnamespacestd;classSac{intn;public:Sac():n(4){cout<<n;}Sac(intk):n(
己知函数f的原型是“voidf(int*x,int&y);”,变量v1、v2的定义是“intv1,v2;”,下列调用语句中,正确的是()。A)f(v1,v2);B)f(v1,&v2);C)f(&v1,v2);D)f(
假设线性表的长度为n,则在最坏情况下,冒泡排序需要的比较次数为
随机试题
下列措施中不属于银监会对违反国家有关银行业监督管理规定的处罚措施的有()。
固定订购量系统的优点是( )。
某企业2018年8月1日赊销一批商品,售价为120000元(不含增值税),为增值税一般纳税人。规定的现金折扣条件为2/10,1/20,N/30,计算现金折扣时考虑增值税。客户于2018年8月15日付清货款,该企业实际收款金额为()元。
在以下社会服务机构中,属于社会公益类事业单位的是()。
“操作规范,注重示范”这一要求适用于()。
下列的说法中,不符合《行政许可法》对行政机关实施行政许可的要求的是()。
18世纪中叶以后,以达兰贝尔《力学原理》为代表的科学著作相继问世,高度完善了爱因斯坦的相对论,为现代科学发展做出了巨大奉献。()
在软件开发中,需求分析阶段产生的主要文档是()。
Willthemangoshoppingwiththewoman?
WelcometotheGatewayArchTicketsavailableatticketwindows.Advancereservationsforlargegroupsandstudentfaresare
最新回复
(
0
)