欢迎来到天天文库
浏览记录
ID:6317365
大小:96.50 KB
页数:13页
时间:2018-01-10
《c++第五章 类与对象习题解答》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第五章类与对象习题第五章类与对象习题一.基本概念与基础知识自测题5.1填空题5.1.1引入类定义的关键字是(1)。类的成员函数通常指定为(2),类的数据成员通常指定为(3)。指定为(4)的类成员可以在类对象所在域中的任何位置访问它们。通常用类的(5)成员表示类的属性,用类的(6)成员表示类的操作。答案:(1)class(2)公有的public(3)私有的private(4)公有的public(5)数据(6)函数5.1.2类的访问限定符包括(1)、(2)和(3)。私有数据通常由(4)函数来访问(读和写)。这些
2、函数统称为(5)。答案:(1)public(公有的)(2)private(私有的)(3)protected(保护的)(4)公有的成员函数(5)类的接口5.1.3通常在逻辑上,同一类的每个对象都有(1)代码区,用以存储成员函数。而在物理上通常只有(2)代码区。只有在(3)定义,并(4)的函数和加了关键字(5)的函数例外。答案:(1)独立的(2)共用的(3)在类说明中(4)不包括循环等复杂结构(5)inline5.1.4C++中支持三种域:(1)、(2)、(3)。函数域被包括在(4)中,全局域被包括在(5)中。
3、using指示符以关键字using开头,后面是关键字(6),最后是(7)。这样表示以后在该名字空间中所有成员都(8)。如不使用using指示符则在使用时要加::,称为(9)运算符。答案:(1)局部域(localscope)(2)名字空间域(namespacescope)(3)类域(classscope)(4)局部域(5)名字空间域(6)namespace(7)名字空间名13第五章类与对象习题(1)可以直接被使用(2)域5.1.5引用通常用作函数的(1)和(2)。对数组只能引用(3)不能引用(4)。答案:(1
4、)参数(2)返回值(3)数组元素(4)数组名本身5.1.6构造函数的任务是(1)和(2)。构造函数无(3),但并不表示(4)。类中可以有(5)个构造函数,它们由(6)区分。如果类说明中没有给出构造函数,则C++编译器会(7)。拷贝构造函数的参数是(8),当程序没有给出拷贝构造函数时,系统会自动提供(9)支持,这样的拷贝构造函数中每个类成员(10)。答案:(1)建立对象(为对象分配内存)(2)初始化数据成员(3)函数返回类型说明(4)没有返回值,返回的是构造函数所创建的对象(5)多(6)不同的参数表(7)自动
5、给出一个缺省的构造函数(8)同一类对象的引用(9)缺省的拷贝构造函,称为缺省的按成员语义支持。(10)被依次拷贝5.1.7一个类有(1)个析构函数。(2)时,系统会自动调用析构函数。答案:(1)一(2)对象注销时5.1.8运算符重载时,其函数名由(1)构成。成员函数重载双目运算符时,左操作数是(2),右操作数是(3)。答案:(1)关键字operator和该运算符(2)对象(3)该函数的参数5.2简答题(以下习题题号可能和教材不一致!)5.2.1为什么返回值为引用的函数可以作为左值?答:函数返回引用实际是指明
6、(返回)了相应的关联变量,所以声明返回值为引用的函数实际上是将关联变量作为左值参与运算。5.2.2什么是缺省的构造函数?缺省的构造函数最多可以有多少个?答:如果在类定义中不显式地定义13第五章类与对象习题构造函数,C++编译器会自动产生一个缺省的构造函数,不过该函数不做具体的初始化工作。只要构造函数是无参的或者只要各参数均有缺省值的,C++编译器都认为是缺省的构造函数。缺省的构造函数只能有一个。5.2.1拷贝构造函数用于哪三个方面?答:(1)用类的一个对象去初始化该类的另一个对象时使用。(2)当函数的形参是
7、类的对象,调用函数时,进行形参与实参结合时使用。(3)当函数的返回值是类对象,函数执行结束返回调用者时使用。5.2.2所有类对象未重载的赋值运算符“=”是怎样工作的?为什么它可以进行连续赋值?答:对所有的类对象,未重载的赋值运算符“=”称作缺省的按成员拷贝赋值操作符,同类对象之间可以用“=”直接拷贝。因为缺省的赋值操作返回一个对象的引用,所以它可以进行连续赋值。5.2.3为什么在友元函数的函数体内访问对象成员时,必须用对象名加运算符“.”再加对象成员名?答:友元函数不是类的成员函数,在函数体中访问对象的成员
8、,必须用对象名加运算符“.”加对象成员名。这一点和一般函数一样。5.2.4重载复数运算符+时,采用下面友元函数声明:friendComplexoperator+(Complex&c1,Complex&c2);为什么不能用于“实数+复数”?怎样改进才能适用?为什么?答:使用引用类型变量作为运算符重载函数的参数,身为左值的实数类型实参不能被转换为复数,编译时无法通过。添加const说明,使实数到复数的转换隐式地在一份
此文档下载收益归作者所有