首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能: (1)类CBase有一个常数变量Number1,在构造函数时对其初始化,请在注释//********1********后
使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能: (1)类CBase有一个常数变量Number1,在构造函数时对其初始化,请在注释//********1********后
admin
2016-10-28
62
问题
使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能:
(1)类CBase有一个常数变量Number1,在构造函数时对其初始化,请在注释//********1********后添加适当的语句。
(2)类CPri是CBase的公共继承类,请在注释//********2********后添加适当的语句。
(3)类CPri构造函数有两个形式参数,第一个是对CBase的初始化,第二个缺省为O,用来对变量Number2进行初始化。请在注释//********3********后添加适当的语句。
(4)类CPri的函数display()重载于CBase的打印函数。完成对变量Number2的输出,然后调用基类的打印函数,请在注释//********4********后添加适当的语句。输出的内容如下:
Number2=12
Number=8
注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
#include<iostream.h>
class CBase
{
private:
int Number;
public:
//********1********
CBase(int x)
{}
void display()
{
cout<<"Number="<<Number<<endl;
}
};
//********2********
class CPri
{
private:
int Number2;
public:
//********3********
CPri(int x,int y=0)
{
Number2=y;
}
void display()
{
//********4********
}
};
int main(){
CPri obj(8,12);
obj.display();
return0;
}
选项
答案
(1)将“CBase(int x)”补充完整为:CBase(int x):Number(x) (2)将“class CPri”补充完整为:Class CPri:public CBase (3)将“CPri(int x,int y=0)”补充完整为:Cpri(int x,int y=0):CBase(x) (4)添加语句:cout<<"Number2="<<Number2<<endl;CBase::display();
解析
(1)构造函数完成类成员变量的初始化,第1个标识下是对Number1初始化,带参数的构造函数初始化有多种方式,可以在函数体内完成初始化,或利用参数初始化表来完成初始化,显然这里不能在函数体完成初始化,只能是在函数首部实现对数据成员的初始化,因此只能通过参数初始化表来完成,这种方法不在函数体内对数据成员初始化,而是在函数首部实现,即第1个标识下应改为“CBase(int x):Number(x)”。
(2)第2标识下是声明类CPri,且类CPri是CBase的公共继承类,定义派生类的一般格式为:
class<派生类名>:<继承方式1><基类:名1>,
<继承方式2><基类名2>,
……
<继承方式n><基类名n>
{
<派生类新定义成员>
};
类CPri是CBase的公共继承类,因此第2个标识下应改为“class CPri:public CBase”。
(3)CPri构造函数有两个形式参数,第一个是对CBase的初始化,第二个缺省为0,用来对变量Number2进行初始化,这里对CBase的初始化也不能在函数体内完成,因此也必须采用参数初始化表来完成,即第3个标识下应改为“CPri(int x,int y=0):CBase(x)”,调用CBase的构造函数完成对CBase的初始化。
(4)函数display()重载于CBase的打印函数。完成对变量Number2的输出,然后调用基类的打印函数display(),基类的display()和派生类的display()重名,调用基类的display()应过类名来直接调用,即第4个标识下应添加“cout<<"Number2="<<Number2<<endl;CBase::display();”。
转载请注明原文地址:https://kaotiyun.com/show/1ONp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
若有以下程序:#include<iostream>usingnamespaceStd;intmain(){inti;inta[3][3]={’1’,’2’,’3’,
下列for语句的循环次数为【】。For(nta=0,b=1;b&&a<5;a++);
下面概念中,不属于面向对象方法的是______.
当要使用ostrstream流类定义一个流对象并联系一个字符串时,应在文件开始处使用#include命令,使之包含()文件。
C++语言中标点符号中表示一条预处理命令开始的是
设有以下程序段:inta[5]={0},*p,*q;p=a;q=a;则下列选项中,合法的运算是
一个学生关系模式为(学号,姓名,班级号,…),其中学号为关键词:一个班级关系模式为(班级号,专业,教室,…),其中班级号为关键词:则学生关系模式中的外关键词为【】。
C++语言中标点符号中表示一条预处理命令开始的是
在C++语言中,封装是借助于什么达到的?
在面向对象的程序设计中,将数据和处理数据的操作封装成一个整体就定义了一种事物的类型,称作“类”。类是一种抽象的概念,属于该类的一个实例称为“______”。
随机试题
下述记录有效积温的方式正确的是()
下列有关光化性唇炎与其他疾病的鉴别诊断,说法错误的是
头颅后前位摄影应与胶片垂直的体表定位线是
某超固结黏土层厚度为6.0m,前期固结压力pc=450kPa,压缩指数Cc=0.36,再压缩曲线上回弹指数Cs=0.16。该黏土层的天然孔隙比e0=0.74,其平均自重压力p1=240kPa,建筑物在该黏土层中产生的平均附加应力△p=300kPa。试问:该
某地下人防工程地下2层,地下二层的室内地面与室外出入口地坪之间高差为11m。地下一层为电影院、商场和餐厅,建筑面积均大于1000m2,地下二层整层为商店,建筑面积大于20000m2。电影院设有7部通至室外的封闭楼梯间,其中大厅所在防火分区2部,其余每个防火
甲公司因购货原因于2016年1月1日应付乙公司账款100万元,货款偿还期限为3个月。2016年4月1日,甲公司因发生财务困难,无法偿还到期债务,经与乙公司协商进行债务重组。双方同意:以甲公司一项专利权抵偿债务。该专利权原值为100万元,已累计摊销40万元,
心理过程的内在协调一致是区分()。
人们试图去预测世界发展线路或寻求过分简化及单向的解决办法,对此我们都应保持怀疑的态度,因为世界形势极其复杂。发展趋势分析则在我们展望未来时提供了一种更为错综复杂的观点,使我们集中关注所要面临的决策分析。对这段文字理解正确的是:
蔡某想做生意,无奈手中缺钱,某日趁自己做生意的朋友律某之子小东放学之机,骗其到自己事先租用的一所房子内,打电话要挟律某用20万元换孩子。律某报警,蔡某发现后将小东杀死。对蔡某的行为应当()。
Historianshaveonlyrecentlybeguntonotetheincreaseindemandforluxurygoodsandservicestookplaceineighteenth-centur
最新回复
(
0
)