首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请使用VC6或使用【答题】菜单打开考生文件夹proj1下的工程proj1,此工程中包含了类Pets(“宠物”)和主函数main的定义。程序中位于每个“//ERROR ****found****”之后的一行语句有错误,请加以改正。改正后程序的输出结果应为:
请使用VC6或使用【答题】菜单打开考生文件夹proj1下的工程proj1,此工程中包含了类Pets(“宠物”)和主函数main的定义。程序中位于每个“//ERROR ****found****”之后的一行语句有错误,请加以改正。改正后程序的输出结果应为:
admin
2017-02-21
32
问题
请使用VC6或使用【答题】菜单打开考生文件夹proj1下的工程proj1,此工程中包含了类Pets(“宠物”)和主函数main的定义。程序中位于每个“//ERROR ****found****”之后的一行语句有错误,请加以改正。改正后程序的输出结果应为:
Name:sonny Type:dog
Name:John Type:dog
Name:Danny Type:cat
Name:John Type:dog
注意:只修改每个“//ERROR ****found****”下的那一行,不要改动程序中的其他内容。
#include<lostream>
using namespace std;
enum Pets_type{dog,cat,bird,
fish};
class Pets{
private:
char * name;
Pets_type type;
public:
Pets(const char * name="
sonny",Pets_type type=dog);
Pets & operator=(const Pets&s);
~Pets();
void show()const;
};
Pets∷Pets(const char * name,
Pets_type type)
//构造函数
{
this->name = new char[strlen(name)+1];
strcpy(this->name,name);
//ERROR *******found*******
type=type;
}
Pets∷~Pets()//析构函数,释放
name所指向的字符串
{
//ERROR *******found*******
name=’/0’;
}
Pets&Pets∷operator=(const
Pets&S)
{
if(&s==this)//确保不要向自身赋值
return * this;
delete[]name;
name = new char[strlen(s.name)+1];
//ERROR*******found*******
strcpy(this->name,name);
type=s.type;
return * this;
}
void Pets∷show()const
{
cout<<"Name: "<<name<<"Type:”,
switch(type)
{
case dog:cout<<"dog";break;
case cat: cout<<"cat"; break;
case bird:cout<<"bird";break;
case fish:cout<<"fish";break;
}
cout<<end1;
}
int main()
{
Pets mypet1,mypet2("John",dog);
Pets youpet("Danny",cat);
mypet1.show();
mypet2.show();
youpet.show();
youpet=mypet2;
youpet.show();
return 0;
}
选项
答案
(1)this->type=type; (2)delete[]name; (3)strcpy(this->name,s.name);
解析
(1)主要考查考生对构造函数的掌握情况,因为形参名和类的私有成员名称都是type,为了避免混淆,所以规定类的私有成员使用this指针调用,即:this->type=type;。
(2)主要考查考生对析构函数的掌握情况,题目中要求,释放name所指向的字符串。要释放name指针用delete语句,即delete[]name;。
(3)主要考查考生对sineW函数的掌握情况,strcpy函数的形参为两个字符串,而name为指向字符串的指针,因此使用语句:strcpy(this->name,s.name);。
转载请注明原文地址:https://kaotiyun.com/show/F6Ap777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
若有说明语句chara[]="Itismine";char*p="Itismille";则以下不正确的叙述是()。
下面程序的运行结果是【】和【】。#include<iostream.h>#defineN10#defines(x)x*x#definef(x)(x*x)
下面程序的运行结果为【】。#include<iostream.h>voidfun(intx=0,inty=0){cout<<x<<y;}voidmain(){
下面程序的输出结果为【】。#include<iostream.h>voidmain(){intnum=0,i=8;do{i--;
假设inta=1,b=2;则表达式a+++--b的值为【】。
“年龄在18-25之间”这种约束是属于数据库当中的
函数定义为Fun(int&i),变量定义n=100.则下面调用正确的是
对于语句cin>>x中的各个组成部分,下列叙述中错误的是
下列选项中合法的用户标识符是( )。
随机试题
贸易条约和协定中通常适用的法律待遇条款有()
据2002年1月统计,我国接入国际Internet(因特网)的出口宽带总量已达7597.5Mbps,连接的国家有美国、加拿大、英国、德国和法国等。信息网络的飞速发展,极大地推动了国家科研教育以及国民经济建设的发展,对促进社会进步、提高全民族整体素质、缩小
关于脉象与疮疡变化的关系,错误的是
下列哪项不是烟碱样症状
2016年甲公司控股股东对甲公司增资3亿元,2016年8月某A股上市公司公告重大资产重组预案,拟发行股份以30亿元价格收购甲公司100%股份,不考虑其他因素,以下正确的有()。[2016年9月真题]Ⅰ.可募集配套资金30亿元Ⅱ.甲公
商业银行应对信息科技风险管理进行内部审计和外部审计。其中,内部审计方面至少应每()进行一次全面审计。
在岗培训与开发的方式包括()。
劳动合同期限一年以上不满三年的,试用期不得超过()。
“给我一打健康的婴儿,一个由我支配的特殊的环境,让我在这个环境里养育他们,我可以担保,任意选择一个,不论他父母的才干、倾向、爱好如何,他父母的职业及种族如何,我都可以按照我的意愿把他们训练成为任何一种人物:医生、律师、艺术家、大商人,甚至乞丐或强盗。”这句
为“运动员”表增加一个字段“得分”的SQL语句是
最新回复
(
0
)