版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Chapter3FoundationofClassesandObjects—DataAbstractionandDefinitionofClasses1.Markthefollowingstatementsastrue(T)orfalse(F)andgivereasons.(1)Objectsnormallyarenotallowedtoknowhowotherobjeetsareimplemented.(2)Theclassisalsoreferredtoasprogrammerdefinedtypes.(3)Amemberfunctiondefinedoutsideoftheclasswhereitisdeclareddoesnothaveclassscope.(4)Amemberfunctionwiththesamenameastheclassandprecededwitha~iscalledtheconstructorfunction.(5)Memberfunctionscannotbeoverloaded.(6)Operators“”and“->”areusedtoaccessclassmembers.(7)Headerfilesprovidethecompletedefinitionofaclass'simplementationdetails.(8)Eachclassdefinitionisnormallyplacedinaheaderfle.(9)Thedefaultaccessmodeformembersofaclassisprivate.(10)Thelabelspublicorprivatecanberepeatedinaclassdefinition.(11)Memberfunctionslabeledpubliccanonlybeaccessedfromoutsidetheclass.(12)Accesstomembersofastructcanbedefinedaspublicorprivate.(13)Likeanyfunction,constructorscanreturnavalue.(14)Constructorscannotbeoverloaded.(15)Aconstructorisamemberfumctionwiththesamenamesastheclass.(16)Aclasshasonlyoneconstructor.(17)Therecanonlybeonedefaultconstructorperclass.(18)Theconstructorcancontaindefaultargumentsintheparameterlist.(19)Adestructoriscalledwhenanobjectisremovedftommemory.(20)Likeaconstructor,adestructorcantakearguments.(21)Adestructormayreturnavalue.(22)Thedestructorcanbeoverloaded.(23)Constructorsanddestructorsarecalledautomatically.(24)Theprogrammermustalwaysprovideaconstructoranddestructorforaclass.(25)Asetfunctionshouldperformthevalidityexamination.(26)Informationhidingisaprocessbywhichaclass'sdataimplementationishiddenfromtheuseroftheclass.(1)假(F)。在某些情况下,对象可以通过特定的方法去了解其他对象的实现,例如通过反射或者访问控制的方式。(2)假(F)。该类通常被称为用户定义的类型,而不是程序员定义的类型。(3)真(T)。在声明类之外定义的成员函数不会拥有类作用域,因此无法直接访问类的私有成员。(4)假(F)。与类名称相同并前面带有~的成员函数被称为析构函数,而不是构函数。假(F)。成员函数可以根据不同的参数类型和数量进行重载。重载允许在同一个类中定义多个具有相同名称但不同参数的成员函数。假(F)。操作符\用于访问类成员,而\->\用于访问指向类对象的指针的成员。假(F)。头文件只包含类的声明,而不是完整的实现细节。实现细节通常在源文件中定义。真(T)。每个类的定义通常都放在一个头文件中,以便其他文件可以引用该类。真(T)。一个类的成员的默认访问模式是私有的,这意味着它们只能在类的内部访问。假(F)。公共的或私有的标签在类定义中只能使用一次。在类定义中,可以通过使用多个公共或私有部分来分组相关的成员,但这些部分不能重复出现。(11)假(F)。标记为“公共”的成员函数可以从类的外部和内部访问。(12)真(T)。对结构体成员的访问可以定义为公共的(默认)或私有的,取决于所定义的访问修饰符。(13)假(F)。构造函数没有返回值,它们的主要目的是初始化对象的实例。(14)假(F)。构造函数可以被重载,允许多个构造函数以不同的参数进行定义。真(T)。构造函数与类具有相同的名称,用于创建和初始化类的对象。假(F):一个类可以有多个构造函数。一个类可以根据不同的参数组合定义多个构造函数。假(F):每个类可以有多个构造函数,没有限制只有一个默认构造函数。真(T):构造函数可以在参数列表包含默认参数,这样在调用构造函数时,如果没有提供相应的参数,将使用默认值。真(T):析构函数在对象被删除从内存中释放时被调用,用于清理对象所占用的资源。真(T):与构造函数一样,析构函数也可以接受参数。这是为了在析构对象时执行特定的操作,或者根据不同情况处理不同的清理任务。(21)假(F)。析构函数没有返回类型,不能返回值。(22)假(F)。析构函数不可以重载,因为它只有一个在对象销毁时被自动调用的版本。(23)真(T)。构造函数在创建对象时被自动调用,析构函数在对象销毁时被自动调用。(24)假(F)。在某些情况下,一个类可以没有显式定义的构造函数和析构函数,编译器会提供默认的构造函数和析构函数。(25)真(T)。集合函数应进行有效性检查以确保输入的数据是合法和有效的,以避免潜在的错误和异常。(26)假(F)。信息隐藏是指在数据中隐藏一些额外信息或元数据的过程,而不是隐藏整个类的数据。例如,在数字图像中隐藏水印或嵌入隐藏消息。2.Findthesyntaxerrorsinthedefinitionsofthefollowingclasses.略。3.Considerthefollowingdeclaration;(1)HowmanymembersdoesclassPointhave?(2)HowmanyprivatemembersdoesclassPointhave?(3)HowmanyconstructorsdoesclassPointhave?(4)WritethedefinitionofdefaultconstructorofclassPointsothattheprivatemembervariablesareimitializedtobe0.(5)Writethedefinitionoftheconstructorwithargumentsxandysothattheprivatemembervariablesareinitializedtobethevaluesofxcandyy.(6)WritethedefinitionofmemberfunctionmovewithargumentsnewXandnewYsothatxisresettobenewXandyisresettobenewY.(7)Writethedefinitionofmemberfunctionprintthatoutputsthevaluesofxandy.(8)WritethemainfunctiontotestclassPoint.略。4.WritethedefinitionofaWordclassthatimplementsthefunctionsofaddingameaning,gettingameaning,gettingthenumberofwordmeaningsandoutputtingallinformationofaword.```pythonclassWord:def__init__(self):self.meanings={}#用字典存储各个单词的含义defadd_meaning(self,word,meaning):ifwordinself.meanings:self.meanings[word].append(meaning)else:self.meanings[word]=[meaning]defget_meaning(self,word):ifwordinself.meanings:returnself.meanings[word]else:return\该单词没有定义。\defget_meaning_count(self,word):ifwordinself.meanings:returnlen(self.meanings[word])else:return0defget_all_info(self,word):ifwordinself.meanings:returnself.meanings[word]else:return\该单词没有定义。\```使用示例:```python#创建一个Word对象word_obj=Word()#添加单词的含义word_obj.add_meaning(\apple\\aroundfruitwithredorgreenskin\word_obj.add_meaning(\apple\\thefruitofatreethatbelongstotherosefamily\#获取单词的含义print(word_obj.get_meaning(\apple\#['aroundfruitwithredorgreenskin','thefruitofatreethatbelongstotherosefamily']#获取单词的含义数量print(word_obj.get_meaning_count(\apple\#2#输出一个单词的所有信息print(word_obj.get_all_info(\apple\#['aroundfruitwithredorgreenskin','thefruitofatreethatbelongstotherosefamily']```这个Word类可以让你添加不同单词的含义,并提供方法来获取单词的含义、含义数量以及输出一个单词的所有信息。注意,这只是一个简单的示例,你可以根据需求扩展该类的功能。5.WriteaTimeDemoclassthatincludesthefollowingproperties:(1)Threedatamembersofhour,minuteandsecond.(2)Threefunctionstosetthreedatamembersrespectively.(3)Timeoutputinformof12hoursor24hours,suchas12hours;9:45AM3:10PM24hours:9:4515:10(4)Aconstructorwithdefaultparameters(defaulttimeis0:0:0).```cpp#include<iostream>usingnamespacestd;classTime{private:inthour;intminute;intsecond;public:Time(inthh=0,intmm=0,intss=0){hour=hh;minute=mm;second=ss;}voidsetHour(inthh){hour=hh;}voidsetMinute(intmm){minute=mm;}voidsetSecond(intss){second=ss;}voiddisplay12HourFormat(){stringperiod=\AM\intdispHour=hour;if(hour>=12){period=\PM\}if(hour>12){dispHour-=12;}cout<<\12-hourformat:\<<dispHour<<\;if(minute<10){cout<<\0\}cout<<minute<<\\<<period<<endl;}voiddisplay24HourFormat(){cout<<\24-hourformat:\if(hour<10){cout<<\0\}cout<<hour<<\;if(minute<10){cout<<\0\}cout<<minute<<endl;}};intmain(){Timet;t.setHour(9);t.setMinute(45);t.display12HourFormat();t.display24HourFormat();t.setHour(15);t.setMinute(10);t.display12HourFormat();t.display24HourFormat();return0;}```该程序定义了一个名为`Time`的类,具有三个数据成员`hour`、`minute`和`second`,以及设置数据成员和显示时间格式的函数。在主函数中,我们创建了一个`Time`对象`t`,设置时间值并调用不同的显示函数来显示时间格式。程序输出将分别显示12小时格式和24小时格式的时间值。6.DefineaRectangleclasswithdatamemberslengthandwidth,eachofwhichis1bydefault.(1)Twopublicmemberfunctionstocalculatetheperimeterandareaoftherectangle.(2)Thepublicsetfunctionschangethevaluesoflengthandwidthandverifythatlengthandwidthareintegerslargerthan0and1essthan50respectively.(3)Thepublicgetfunctionsreturthevaluesoflengthandwidth.以下是一个实现上述要求的矩形类的示例代码:```pythonclassRectangle:def__init__(self):self.length=1self.width=1defcalculate_perimeter(self):return2*(self.length+self.width)defcalculate_area(self):returnself.length*self.widthdefset_dimensions(self,length,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年初级会计职称考试全真模拟试题(含详细答案解析)
- 农产品检测实验室化学品泄漏应急处置预案
- 2025年政府采购评审专家考核复习题库及答案解析
- 2025年融媒体记者编辑招聘笔试真题完整答案
- 产后出血输血抢救应急演练脚本
- 2026-2031年中国吉林省房地产行业市场调查研究及发展前景预测报告
- 事故危害预防与安全
- 英语(五年级上册)-Unit3 Lesson 4 课件 o-e
- 英语(五年级上册)Unit 5 Our Earth
- 2025-2026年苏教版九年级英语下册第11单元语法测试卷
- 肺结核预防知识宣传
- 汉语言文学自考唐宋词研究精讲高频考点100题
- 山东省临沂市河东区、费县2024-2025学年高二上学期期中联考 化学试题
- 安全驾驶培训
- NB/T 11266-2023火储联合调频项目后评估导则
- 穴位埋线疗法增强免疫功能与抗炎作用
- 餐厅场所的安全摄像监控系统
- 5版物理化学物理化学电子教案(第二版)课件
- 全国优质课一等奖初中综合实践活动劳技《贺卡制作》公开课课件
- 入托入学预防接种查验报告(10篇)
- 高二上学期第一次月考数学试卷(提高篇)(原卷版)
评论
0/150
提交评论