首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请使用VC6或使用【答题】菜单打开考生目录proj3下的工程文件proj3,该文件中定义了用于表示日期的类Date、表示人员的类Person和表示职员的类Staff;程序应当显示: 张小丽123456789012345 但程序中有缺失部分,请按以下提示把缺
请使用VC6或使用【答题】菜单打开考生目录proj3下的工程文件proj3,该文件中定义了用于表示日期的类Date、表示人员的类Person和表示职员的类Staff;程序应当显示: 张小丽123456789012345 但程序中有缺失部分,请按以下提示把缺
admin
2015-06-27
25
问题
请使用VC6或使用【答题】菜单打开考生目录proj3下的工程文件proj3,该文件中定义了用于表示日期的类Date、表示人员的类Person和表示职员的类Staff;程序应当显示:
张小丽123456789012345
但程序中有缺失部分,请按以下提示把缺失部分补充完整:
(1)在“//**1******found****”的下方是析构函数定义中的语句,它释放两个指针成员所指向的动态空间。
(2)在“//**2******found****”的下方是rename函数中的一个语句,它使指针nanle指向申请到的足够容纳字符串new_name的空间。
(3)在“//**3******found****”的下方是构造函数定义的一个组成部分,其作用是利用参数表中前几个参数对基类Person进行初始化。
注意:只在指定位置编写适当代码,不要改动程序中的其他内容,也不要删除或移动“****found****”。填写的内容必须在一行中完成,否则评分将产生错误。
//proj3.cpp
#include
usingnamespacestd;
clasSPerson
{
char*idcardno;
//用动态空间存储的身份证号
char*name;//用动态空间存储的姓名
boolismale;//性别:true为男,false为女
public:
Person(constchar*pid,constchar
*pname,boolpmale);
~Person(){
//**1************found**********
________;
}
constchar*getIDCardNO()const{
returnidcardno;)
constchar*getName()const{returnname;)
voidrename(constchar*newname);
boolisMale()const{returnismale;)
};
classStaff:publicPerson
{
char*department;
doublesalary;
public:
Staff(constchar*id_card_no,
constchar*P_name,boolis_male,
constchar*dept,doublesal);
~Staff(){delete[]department;}
constchar*getDepartment()const{
returndepartment;}
voidsetDepartment(constchar*d);
doublegetSalary()const{returnsalary;}
voidsetSalary(doubleS){salary=s;}
};
Person::Person(constchar*idcard_no,constchar*pname,boolis_male):ismale(iSmale)
{
idcardno=newchar[strlen(idcardno)+1];
strcpy(idcardno,id_card_no);
name=newchar[strlen(p_name)+1];
strcpy(name,p_name);
}
voidPerson::rename(constchar*new
name)
{
delete[]name;
//**2************found**********
________;
strcpy(name,new_name);
}
Staff::Staff(constchar*idcard
no,constchar。Pname,boolis
male,
//**3************found**********
constchar*dept,doublesal):________
{
department=newchar[strlen(dept)+1];
strcpy(department,dept);
salary=sal;
}
voidStaff::setDepartment(constchar*dept)
{
delete[]department;
department=newchar[strlen(dept)+1];
strcpy(department,dept);
}
intmain()
{
StaffZhangsan("123456789012345","叫张三",false,"人事部",1234.56);
Zhangsan.rename("张小丽");
cout<
return0;
}
选项
答案
(1)delete[]idcardno,nalne (2)nanle:newchar[strlen(new_name)+1] (3)Person(id_card_no,p_nanle,is_male)
解析
(1)主要考查考生对析构函数的掌握,题目要求释放两个指针成员所指向的动态空间。释放动态空间应使用delete语句,因为要释放两个指针,使用语句:delete[]idcardno,name;实现。注意当释放多个指针时,中间用逗号隔开。
(2)考查动态数组分配空间,题目要求指针name指向申请到的足够容纳字符串new_nanle的空间。使用strlen(new_name)得到字符串new_nanle的长度,但是这里要注意加1。
(3)主要考查考生对派生类构造函数的掌握,题目要求利用参数表中前几个参数对基类Person进行初始化。派生类的构造函数要使用成员列表初始化法对基类初始化,因此为constchar*dept,doublesal):Person(id_card_no,p_nallle,is_male)。
转载请注明原文地址:https://kaotiyun.com/show/qDNp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
以下程序的执行后,x和y的值是______。#include<iostream.h>classSample{public:intx;inty;
在长度为n的顺序表的第i(1≤i≤n+1)个位置上插入一个元素,元素的移动次数为______。
用于输出表达式值的标准输出流对象是【】,用于从键盘上为变量输入值的标准输入流对象是【】。
以下函数模板max的功能是返回数组a中最大元素的值。请将横线处缺失部分补充完整。template<typenameT>Tmax(Ta[],intn){Tm=a[0];for(inti=1;i<n;i++)
数据结构分为逻辑结构和存储结构,循环队列属于【】结构。
数据库系统阶段的数据具有较高独立性,数据独立性包括物理独立性和【】两个含义。
在表达式x-y中,“-”是作为非成员函数重载的运算符。若使用显式的函数调用代替直接使用运算符“-”,这个表达式还可表示为()。
对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是
软件生命周期包括8个阶段。为了使各时期的任务更明确,又可分为3个时期:软件定义期、软件开发期、软件维护期。编码和测试属于【】期。
对长度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为【 】。
随机试题
(2021年济南历下区)依据皮亚杰的道德认知发展理论,处于自律道德水平的个体的典型表现是能够()
男,28岁。因车祸颌面部外伤8小时后急诊。检查:患者左面部肿胀明显,眶周眼睑及结膜下淤斑,压痛,张口受限,张口度半指,咬合关系正常。常规行X线检查时,最好拍摄
喘证的特征是悬饮的特征是
以下属于劳动过程中的职业病危害的因素是()。
下列有关所得税的说法中,正确的有()。
Mr.Weeksisfiftyyearsold.He’staughtmathsinamiddleschoolfortwentyyears.Heworksandalwayscomestohisofficeon
沙漠化是由于自然因素和人类活动的影响而引起生态系统的破坏,使原来非沙漠地区出现了类似沙漠环境的变化。()
A、 B、 C、 D、 D特殊值代入法,如a=0.5,b=0.5;那么=,由此可以排除A、B、C。
MusictoYourGearsMusicmaysoothethesavagebreast,butitcanalsodamageyourhealthwhenyouareatthewheel.(A)Recentr
A、Waitingfortheirfight.B、Waitingforabus.C、Takingataxi.D、Winningagame.B根据女士的话推断,他们在等某种交通工具,而且是每十分钟来一辆,所以最有可能的就是公共汽车
最新回复
(
0
)