首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请使用VC6或使用【答题】菜单打开考生文件夹proj1下的工程proj1,此工程中包含了类Pets(“宠物”)和主函数main的定义。程序中位于每个“//ERROR****found****”之后的一行语句有错误,请加以改正。改正后程序的输出结果应为:
请使用VC6或使用【答题】菜单打开考生文件夹proj1下的工程proj1,此工程中包含了类Pets(“宠物”)和主函数main的定义。程序中位于每个“//ERROR****found****”之后的一行语句有错误,请加以改正。改正后程序的输出结果应为:
admin
2016-08-19
58
问题
请使用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****”下的那一行,不要改动程序中的其他内容。
1 #iticlude
2 using namespace std;
3
4 enum Pets_type{dog,cat,bird,fish};
5 class Pets{
6 private:
7 char*name;
8 Pets_type type;
9 public:
10 Pets(const char*name="sonny",Pets_type type=dog);
11 Pets&operator=(const Pets&s);
12 ~PetS();
13 void show()const;
14 };
15 PetS::Pets(const char*name,Pets_type type)
16 //构造函数
17 {
18 this->name=new char[strlen(name)+1];
19 strcpy(this->name,name);
20 //ERROR *********found*********
21 type=type;
22 }
23 Pets::~Pets()//析构函数,释放name所指向的字符串
24 {
25 //ERROR *********found*********
26 name=’/0’;
27 }
28 Pets&Pets::operator=(const Pets&s)
29 {
30 if(&s==this)//确保不要向自身赋值
31 return*this;
32 delete[]name;
33 name=new char[strlen(s.name)+1];
34 //ERROR *********found*********
35 strcpy(this->name,name);
36 type=s.type;
37 return*this;
38 }
39 void Pets::show()const
40 {
41 cout<<"Name:"<
42 switch(type)
43 {
44 case dog:cout<<"dog";break;
45 case cat:cout<<"cat";break;
46 case bird:cout<<"bird";break;
47 case fish:cout<<"fish";break;
48 }
49 cout<
50 }
51 int main()
52 {
53 Pets mypet1,mypet2("John",dog);
54 Pets youpet("Danny",cat);
55 mypet1.show();
56 mypet2.show();
57 youpet.show();
58 youpet=mypet2;
59 youpet.show();
60 return 0;
61 }
选项
答案
(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)主要考查考生对strcpy函数的掌握情况,strcpy函数的形参为两个字符串,而name为指向字符串的指针,因此使用语句:strcpy(this->name,s.name);。
转载请注明原文地址:https://kaotiyun.com/show/O4Np777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
一个C++语言程序的开发步骤通常包括编辑、【】、链接、运行和调试。
已知某序列为{49,38,65,97,76,13,27},试采用该序列的第一个元素为枢轴进行快速排序,则经过一趟快速排序之后所得到的序列为:【】。
以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每个学生的平均分数并输出,程序如下:#include<iostream>usingnamespacestd;intmain(){i
函数重载是指()。
下面不属于软件设计原则的是()。
设有关系R及关系S,它们分别有p、q个元组,则关系R与S经笛卡儿积后所得新关系的元组个数是()。
下面描述中,符合结构化程序设计风格的是______.
流操作子______可跳过输入流中的前导空白字符。
通过使用new和delete两个运算符进行的分配为【】存储分配。
随机试题
E-procurement,alsoknownase-purchasing,istheprocessofrequisitioningdirectorindirectmaterialsusingtheInternetast
A.直接盖髓术B.间接盖髓术C.活髓切断术D.根尖诱导成形术E.根管治疗术13岁儿童上前牙外伤冠折露髓应用哪种治疗方法
下述关于固有口腔境界的描述,错误的是
A、溴量法B、酸碱滴定法C、亚硝酸钠滴定法D、非水溶液滴定法E、紫外分光光度法对乙酰氨基酚的含量测定方法为( )。
A.一般在产后3~7d出现症状B.又称为股白肿C.最为常见的感染D.产后1~2周内出现弛张热、下腹疼痛和压痛E.在产后7~14d出现症状血栓性静脉炎()。
土工模袋岸坡护坡,其模袋厚度应通过()分析确定。
甲、乙、丙三家企业组成联合体参与某工程投标,其中,甲为一级土建企业,乙为二级安装企业,甲、乙均具有法人资格;丙为劳务企业,不具有法人资格;甲为牵头企业。根据《招标投标法》的规定,下列关于该联合体的表述中,错误的是()。
银行信贷专员小王在运用相关指标对B区域风险状况进行分析时,发现该银行的信贷资产相对不良率小于1、不良率变幅为负、贷款实际收益率较高,如果小王仅以以上信息来判断,则该区域风险()。
力学:物理学
NarratorListentoaconversationbetweenaforeignstudentandaprofessor.Nowgetreadytoanswerthequestions.Yo
最新回复
(
0
)