首页 > 试题广场 >

派生类对象可以访问基类成员中的?

[单选题]
派生类对象可以访问基类成员中的()?
  • 公有继承的私有成员
  • 私有继承的公有成员
  • 公有继承的保护成员
  • 以上都错
C
基类成员在派生类的访问属性取决于继承方式以及这些成员本来在基类中的访问属性。
(1)基类的私有成员无论何种继承方式在派生类中均不可直接访问。
(2)在公有继承方式下,基类的保护和公有成员在派生类中均保持原访问属性。
(3)在保护继承方式下,基类的保护和公有成员在派生类中的访问属性均为保护属性。
(4)在私有继承方式下,基类的保护和公有成员在派生类中的访问属性均为私有属性。

发表于 2015-01-25 11:02:23 回复(0)
更多回答
推荐
【正确答案】D
【解析】无论是什么继承方式,派生类的对象只能访问基类中的公有成员。
 
继承知识点讲解】
更多C++基础专业知识讲解,点击链接即可查看
编辑于 2021-11-17 15:25:03 回复(0)
答案:D
A,公有继承的私有成员不被继承,所以不能访问
B,私有继承的公有成员会变成派生类的私有成员,也不能被访问
C,公有继承的保护成员可以被类的方法访问,不能被对象访问
D,所以以上都是错误的
编辑于 2021-11-17 15:25:03 回复(13)
这道题问的是派生类对象,而不是派生类内部,有疑问的同学要注意这点了
发表于 2015-08-16 10:39:54 回复(10)
基类成员在派生类的访问属性取决于继承方式以及这些成员本来在基类中的访问属性
(1)基类的私有成员无论什么继承方式,在派生类中均不可以直接访问
(2)在公有继承下,基类的保护成员和公有成员均保持原访问属性
(3)在保护继承方式下,基类的保护和公有成员在派生类的访问属性均为保护属性
(4)在私有继承下,基类的保护和公有成员在派生类中的访问属性均为私有属性

          所以对于此题:
1.公有继承的私有成员不被继承,所以不能访问
2.私有继承的公有成员可以被类的方法访问,不能被对象访问,属于私有属性
3.公有继承的保护成员具有保护属性,只能被类的方法访问,不能被对象访问
发表于 2015-08-23 10:32:15 回复(4)
如果在派生类对象中,ABC都不对,因为类的对象一般是在这个类的外部实例化的,所以在派生类的对象中只能访问基类的公有继承的公有成员。如果在派生类中,则BC是对的。注意derived class, derived object,即派生类与派生类对象的区别。个人见解,欢迎指正。
发表于 2015-10-22 16:29:36 回复(1)
FQQ头像 FQQ
所有的继承方式的访问性:
继承方式 基类成员特性 派生类成员特性 派生类对象访问
公有继承 public    public 可直接访问
         protected  protected 不可直接访问
         private  不可访问 不可直接访问
私有继承 public  private 不可直接访问
         protected  private 不可直接访问
         private  不可访问 不可直接访问
保护继承 public  protected 不可直接访问
         protected  protected 不可直接访问
         private  不可访问 不可直接访问
发表于 2017-07-14 15:42:58 回复(0)
可以访问基类成员中的 公有继承的公有成员
发表于 2020-02-26 17:03:22 回复(0)
基类成员在派生类的访问属性取决于继承方式以及这些成员本来在基类中的访问属性
(1)基类的私有成员无论什么继承方式,在派生类中均不可以直接访问
(2)在公有继承下,基类的保护成员和公有成员均保持原访问属性
(3)在保护继承方式下,基类的保护和公有成员在派生类的访问属性均为保护属性
(4)在私有继承下,基类的保护和公有成员在派生类中的访问属性均为私有属性

          所以对于此题:
1.公有继承的私有成员不被继承,所以不能访问
2.私有继承的公有成员可以被类的方法访问,不能被对象访问,属于私有属性
3.公有继承的保护成员具有保护属性,只能被类的方法访问,不能被对象访问
发表于 2018-12-25 15:43:11 回复(0)
公有继承时,派生类的成员函数可以访问基类的保护成员
发表于 2018-04-01 19:37:05 回复(0)
题干中问派生类对象可以访问的基类成员,而不是派生类中可以访问的基类成员。
既然是派生类对象,说明该对象已经被实例化,即在类外部访问基类成员,
因此ABC都错误。
编辑于 2016-07-05 08:57:00 回复(0)
私有继承的公有成员会变成派生类的私有成员,对象不能直接访问;
公有继承的保护成员可以被类中的函数访问,不能被对象直接访问。

一定要注意期间的关系。
发表于 2016-05-21 13:01:08 回复(0)
C,C++ Primer第475页有一句话“protected成员可以被派生类对象访问”
发表于 2015-08-31 22:28:42 回复(1)
我觉得可能难在题意理解上...题目问的是派生类对象并不涉及派生类内部,方法确实可以访问到保护成员
发表于 2023-12-01 21:06:33 回复(0)
注意区分类的方法访问和类的对象访问
发表于 2022-09-07 16:09:19 回复(0)
1.公有和保护继承的基类保护成员为保护属性,私有继承的基类保护成员为私有属性 2.这里有坑,不能通过对象来访问保护和私有成员,只能通过对象方法来访问
发表于 2022-06-26 20:51:54 回复(0)
私有继承会变成私有成员,那再继承就不能被访问了
发表于 2022-02-03 23:28:40 回复(0)
对象访问
发表于 2021-12-21 04:20:33 回复(0)
类的对象不可以访问保护成员,类的方法可以
发表于 2021-09-06 16:15:06 回复(0)
这题还是难度挺大的
发表于 2021-07-22 20:12:09 回复(0)
私有在它的类外无法访问,公有继承的保护成员只可以类访问,不可以对象访问
发表于 2021-06-27 21:31:08 回复(0)