VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
123
返回列表 发新帖
楼主: fei0105

一个关于派生类继承父类私有属性的问题 请教

[复制链接]

1

主题

39

帖子

27.00

积分

新手上路

Rank: 1

积分
27.00
发表于 2020-7-15 08:15:01 | 显示全部楼层
在子类构造函数中给父类成员赋初值时不就是访问了父类的私有成员了吗?
----------------------
调用公共接口也能叫访问了私有成员?那还有那个不是访问私有成员.
你不要管函数内部做了什么,关键是他是否可以被你调用.

回复

使用道具 举报

1

主题

7

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-7-18 11:00:01 | 显示全部楼层
如果是private继承,name的可访问性就变为private的,public继承则
    //name可访问性不变(但若name在基类中就是private的,则不可访问).

我运行了下 父类protected属性  子类通过private继承,在子类里仍能访问父类中name(仍为protected),
那这时,name父类里对外仍是protected,  而子类继承来为private,体现在哪里呢?
回复

使用道具 举报

0

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-7-18 12:00:01 | 显示全部楼层
我运行了下 父类protected属性  子类通过private继承,在子类里仍能访问父类中name(仍为protected),
那这时,name父类里对外仍是protected,  而子类继承来为private,体现在哪里呢?
============================================
当你再有一个类继承的时候,可访问性就没有了.

祖:protected
父:private 继承祖,则protected和public下的东西全变为private
子:再也不能直接访问 祖下的东西了.


回复

使用道具 举报

1

主题

7

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-7-18 13:30:02 | 显示全部楼层
我刚才也试了
祖:若为public
父:private 继承祖
子:不能直接访问父中   祖类对象p.name直接访问祖下的public name  倒是编译没错
回复

使用道具 举报

1

主题

7

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-7-18 13:45:01 | 显示全部楼层
这么说后代继承来的只改变在自己类时的作用域,没改变父类定义时的作用域..
回复

使用道具 举报

0

主题

8

帖子

9.00

积分

新手上路

Rank: 1

积分
9.00
发表于 2020-7-29 17:15:02 | 显示全部楼层
这么说后代继承来的只改变在自己类时的作用域,没改变父类定义时的作用域
========================
当然不会改变父类对象中成员的访问权限了,改变的是子类对象中从父类继承部分成员的访问权限.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表