首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请使用VC6或使用【答题】菜单打开考生目录proj3下的工程文件proj3,该文件中定义了用于表示日期的类Date、表示人员的类Person和表示职员的类Staff;程序应当显示: 张小丽123456789012345 但程序中有缺失部分,请按以下提示把缺
请使用VC6或使用【答题】菜单打开考生目录proj3下的工程文件proj3,该文件中定义了用于表示日期的类Date、表示人员的类Person和表示职员的类Staff;程序应当显示: 张小丽123456789012345 但程序中有缺失部分,请按以下提示把缺
admin
2015-06-27
23
问题
请使用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全国计算机二级
相关试题推荐
有以下定义,则此数组的元素中不正确的一个赋值结果是______。staticinta[10]={1,2,3,4,5};
以下程序的输出结果是______。#include<iostream.h>voidmain(){inti,j;for(j=10;j<=11;j++){for(i=9;i<j:j++)
在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块(桩模块)。其中【】的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。
有如下定义inta;floatf;doublei;则表达式4+‘a’+i*f的值的数据类型是______。
在创建数据库表结构时,给该表指定了主索引,这属于数据完整性中的()。
关于C++主函数特性,下列叙述正确的是()。
若有函数func(par1,par2+par3,(par4,par5)):在调用该函数时,实参的个数是______。
下列关于this指针的叙述中,正确的是
己知在一个类体中包含如下函数原型:VOLUME operator-(VOLUME)const;,下列关于这个函数的叙述中,错误的是
随机试题
[*]
下列物质中抑制胃酸分泌的是
2型糖尿病血糖控制的目标是
根据项目特点,在项目选址中可能需要进行的专题比选工作不包括()。
某小区住宅楼工程,建筑面积43177㎡,地上9层,结构形式为全现浇剪力墙结构,基础为带形基础,施工过程中每道工序严格按“三检制”进行检查验收。建设单位为某房地产开发有限公司,设计单位为某设计研究院,监理单位为某监理公司,施工单位为该市某建设集团公司,材料供
某公司的会计部门具有强大的内部控制结构。该部门具有高度的职责分离、定期对账、严格审查和全面内部审计。某心怀不满的固定资产会计师蓄意贪污由应收账款部门处理的现金收入。会计师计划将这些资金用于赌博。使用舞弊三角模型,哪一项是对公司舞弊风险情况的最佳评估?
H公司是东北一家民营企业,1996年创建时仅有50万元资金和5个员工。近年来市场对其产品需求不断升温,吸引了数十家企业进入该地区。该企业产品在市场有一定的竞争能力,企业经济效益也不错。公司规模不断扩大,部门增加到十个,人员发展到150多。创办人自任总经理,
简要回答计算机网络按传输范围和逻辑功能两个方面的分类。
蓝眼冯骥才①古玩行中有对天敌,就是造假画的和看假画的。造假画的,费尽心机,用尽绝招,为的是骗过看假画的那双又尖又刁的眼;看假画的,却凭这双眼识破天机,看破诡计,捏着这
北极地区冰壶的逐渐融化,更________的意义在于北冰洋上将出现新航道,新航道的出现可以让环北极地区国家________提出对北极地区的主权主张,不仅可以使本国获得经济和军事利益,而且可以直接对其他国家的科学考察,经济开发等活动进行________。依
最新回复
(
0
)