下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第四章类与对象习题答案:(1)(2 )(3 )(4 )(5 )(6 )(7 )n amespace名字空间名一.基本概念与基础知识自测题4.1填空题5.1.1引入类定义的关键字是(1)。类的成员函数通常指定为(2),类的数据成员通常指定为(3)。指定为(4)的类成员可以在类对象所在域中的任何位置访问它们。通常用类的(5)成员表示类的属性,用类的 ( 6)成员表示类的操作。答案:(1) class(2) 公有的public(3) 私有的 private(4) 公有的public(5) 数据(6) 函数4.1.2 类的访问限定符包括(1)、(2) 和 (3)。私有数据通常由(4)函数来访问(读和写
2、)。这些函数统称为(5)。答案:(1) public (公有的)(2) private (私有的)(3) protected (保护的)(4) 公有的成员函数(5) 类的接口4.1.3 通常在逻辑上,同一类的每个对象都有(1)代码区,用以存储成员函数。而在物理上通常只有(2 )代码区。只有在(3 ) 定义,并 (4 )的函数和加了关键字(5 )的函数例外。答案:(1) 独立的(2 ) 共用的(3) 在类说明中(4) 不包括循环等复杂结构(5 )in li ne4.1.4 C+中支持三种域:(1)、( 2)、( 3 )。函数域被包括在(4 )中,全局域被包括在(5) 中。using指示符以关键字
3、using开头,后面是关键字 (6 ),最后是 (7 )。这样表示以后在该名字空间中所有成员都(8 )。如不使用using指示符则在使用时要加::,称为 (9 )运算符。局部域(local scope )名字空间域(namespace scope 类域(class scope)局部域名字空间域(8)可以直接被使用(9)域4.1.5引用通常用作函数的(1)和(2)。对数组只能引用(3)不能引用(4)。答案:(1)参数(2)返回值(3)数组兀素(4)数组名本身4.1.6构造函数的任务是(1)。构造函数无(2)。类中可以有(3)个构造函数,它们由(4)区分。如果类说明中没有给出构造函数,则C+编译器
4、会(5)。拷贝构造函数的参数是(6),当程序没有给出复制构造函数时,系统会自动提供(7)支持,这样的复制构造函数中每个类成员(8)。答案:(1)初始化数据成员(2)函数返回类型说明(3)多(4)不同的参数表(5)自动给出一个默认的构造函数(6)同一类对象的引用(7)默认的的复制构造函,称为默认的按成员语义支持。(8)被依次复制4.1.7一个类有(1)个析构函数。(2)时,系统会自动调用析构函数。答案:(1)-一-(2)对象注销时4.1.8运算符重载时,其函数名由(1)构成。成员函数重载双目运算符时,左操作数是(2),右操作数是(3)。答案:(1)关键字operator和该运算符(2)对象(3)
5、该函数的参数4.1.9面向过程的程序设计中程序模型描述为(1),面向对象程序设计的程序模型可描述为 (2)。答案:(1)“程序=算法+数据结构”。其数据与数据处理是分离的。(2)程序=(对象+对象+对象)+消息;对象=(算法+数据结构)。面向对象设计将数据和对数据的操作方法放在一起,形成一个相对独立的整体对象(Object),并通过简单的接口与外部联系。对象之间通过消息(Message)进行通讯。4.2简答题4.2.1简单解释什么是面向对象程序设计的封装性。答:对象是一个封装体,在其中封装了该对象所具有的属性和操作。对象作为独立的基本单元,实现了将数据和数据处理相结合的思想。此外,封装特性还体
6、现在可以限制对象中数据和操作的访问权限,从而将属性“隐藏”在对象内部,对外只呈现一定的外部特性和功能。封装性增加了对象的独立性,C+通过建立数据类型一一类,来支持封装和数据隐藏。一个定义完好的类一旦建立,就可看成完全的封装体,作为一个整体单元使用,用户不需要 知道这个类是如何工作的,而只需要知道如何使用就行。另一方面,封装增加了数据的可靠 性,保护类中的数据不被类以外的程序随意使用。这两个优点十分有利于程序的调试和维护。423为什么说类与对象的概念是客观世界的反映?答:客观世界的事物都具有某些属性和行为(或操作),具有相同属性和行为的事物可以归属于一类,用分类的方法可以提高认识事物的效率。C+
7、中定义的类则是通过抽象的方法将某一类事物共有的静态特征(属性)和动态特征(行为)概括出来并加以描述,而对象是类 的具体实现,所以说类与对象的概念是客观世界的反映。4.2.4什么叫类域?为什么说类域是抽象的?答:类域是类体所包括的范围。每个类定义都引入了一个独立的类域,在类域中说明的标识符仅在该类的类域中有效。由于类只是一个说明,看上去有数据,有函数,有类型定义,但 是它并非实体,不分配内存,当然也不能运行。所以说类域是抽象的。4.2.5引用作为函数参数时为什么能实现两个实参之间的数据交换?为什么对应实参不能为引用?为什么返回值为引用的函数可以作为左值?答:引用变量是其关联变量的别名,二者在内存
8、中占据同一个存储单元。在一个以引用作为参数的函数中,交换两个参数的值,实际上就是交换两个实参的值。如果函数的参数是引用,调用时需要取得实参的地址,而实参如果已经是一个地址,再进行引用将产生错误,故对应实参不能为引用。函数返回引用实际是指明(返回)了相应的关联变量,所以声明返回值为引用的函数实 际上是将关联变量作为左值参与运算。4.2.6什么是缺省的构造函数?缺省的构造函数最多可以有多少个?答:如果在类定义中不显式地定义构造函数,C+编译器会自动产生一个缺省的构造函数,不过该函数不做具体的初始化工作。只要构造函数是无参的或者只要各参数均有缺省值 的,C+编译器都认为是缺省的构造函数。缺省的构造函数只能有一个。4.2.7拷贝构造函数用于哪三个方面?答:(1)用类的一个对象去初始化该类的另一个对象时使用。(2)当函数的形参是类的对象,调用函数时,进行形参与实参结合时使用。(3)当函数的返回值是类对象,函数执行结束返回调用者时使用。4.2.8写出含有对象成员的类的构造函数的格式,并做简单说明。答:C+中对含对象成员的类对象的构造函数有固定的格式:类名::构造函数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论