已知3个类O、P和Q,类O中定义了一个私有方法F1、一个公有方法 F2和一个受保护的方法F3:类P和类Q为类O的派生类,其继承方式如下所不: class P:protected O{...} class Q;public O{…} 在关于

admin2009-05-15  63

问题 已知3个类O、P和Q,类O中定义了一个私有方法F1、一个公有方法 F2和一个受保护的方法F3:类P和类Q为类O的派生类,其继承方式如下所不:
   class P:protected O{...}
   class Q;public O{…}
   在关于方法F1的描述中正确的是(54)。在关千方法F2的描述中正确的是(55)。在关于方法F3的描述中正确的是(56)。

选项 A、类O、P和Q的对象都可以访问方法F3
B、类O、P和Q的对象都不可以访问方法F3
C、类O的对象可以访问方法F3,但类P的对象不能访问方法F3
D、类P的对象可以访问方法F3,但类Q的对象不能访问方法F3

答案B

解析 类实际上就是由一组描述对象属性或状态的数据项和作用在这些数据项上的操作(或称为方法、成员函数等)构成的封装体。类的定义由关键字class打头,后跟类名,类名之后的括弓内是类体,最后以“;”结束。类与C中的结构大致相似,其不同之处在于类中规定了哪些成员可以访问,哪些成员不可以访问。这些都通过访问指明赋予以说明。访问指明符有三种,分别是private、protected和public。private成员私有化,除了该类的成员函数以外,谁也不能访问它们。public成员公有化,程序中的所有函数(不管是类内定义的还是类外定义的),都可以访问这些成员。protected成员受限保护,只有该类及该类的子类的成员函数才能够访问。在类的成员定义中,如果没有指明符,则系统默认为private。要注意的是,在C++中,一个类的友元是可以访问该类的所有成员的。继承的限定也有三种,分别是private(私有继承)、protected(保护继承)和public(公有继承)。在public继承时,派生类(子类)的public、private、protected型的成员函数可以访问基类中的public成员和protected成员,派生类的对象仅可访问基类中的public成员。在private继承时,派生类的public、private、protected型的成员函数可以访问基类中的public成员和protected成员,但派生类的对象不可访问基类中的任何成员。在protected继承时,派生类的public、private、protected型的成员函数可以访问基类中的public成员和protected成员,但派生类的对象不可访问基类中的任何成员。使用class关键字定义类时,缺省的继承方式是private,也就是说,当继承方式为private继承时,可以省略private。在本题中,已知3个类O、P和Q,类O中定义了一个私有方法F1、一个公有方法F2和一个受保护的方法F3;类P和类Q为类O的派生类,且P是保护继承方式,Q是公有继承方式。因为F1是类O的私有方法,因此,只有在类O内才能访问方法F1。F2是类O的公有方法,所以类O和Q的对象都可以访问方法F2。F3是类O的受保护的方法,因此,类O、P和Q的对象都不能访问方法F3。
转载请注明原文地址:https://jikaoti.com/ti/eJJ7FFFM
0

随机试题
最新回复(0)