第三章课后习题
一、填空题
(1)类定义中关键字private、public和protected以后的成员的访问权限分别是 私有、 公有 和 保护。如果没有使用关键字,则所有成员默认定义为private权限。具有 public 访问权限的数据成员才能被不属于该类的函数所直接访问。
(2)定义成员函数时,运算符“::”是 作用域 运算符,“MyClass::”用于表明其后的成员函数是在“MyClass类”中说明的。
(3)在程序运行时,通过为对象分配内存来创建对象。在创建对象时,使用类作为 样板,故称对象为类的 实例。
(4)假定Dc是一个类,则执行“Dc a[10],b(2)”语句时,系统自动调用该类构造函数的次数为 11 。
(5)对于任意一个类,析构函数的个数最多为 1 个。
(6)delete运算符通常用于实现释放该类对象中指针成员所指向的动态存储空间的任务。
(7)C++程序的内存格局通常分为4个区: 数据区、代码区、栈区和堆区。
(8)数据定义为全局变量,破坏了数据的 封装性;较好的解决办法是将所要共享的数据定义为类的 静态成员。
(9)静态数据成员和静态成员函数可由 任意访问权限许可 函数访问。
(10) 友元函数和 友元类 统称为友元。
(11)友元的正确使用能提高程序的 效率,但破坏了类的封装性和数据的隐蔽性。
(12)若需要把一个类A定义为一个类B的友元类,则应在类B的定义中加入一条语句:friend class A 。
二、选择题(至少选一个,可以多选)
(1)以下不属于类存取权限的是(B)。
A.public B.static C.protected D.private
(2)有关类的说法不正确的是(BC)。
A.类是一种用户自定义的数据类型
B.只有类的成员函数才能访问类的私有数据成员
C.在类中,如不做权限说明,所有的数据成员都是公有的
D.在类中,如不做权限说明,所有的数据成员都是私有的
(3)在类定义的外部,可以被任意函数访问的成员有(C)。
A.所有类成员 B.private