社区
C++ 语言
帖子详情
公有继承,私有继承,和保护继承?
tonysnss
2003-11-25 11:05:19
C++中有公有继承,私有继承,和保护继承的说法,哪位高手给我解释一下!
...全文
1461
3
打赏
收藏
公有继承,私有继承,和保护继承?
C++中有公有继承,私有继承,和保护继承的说法,哪位高手给我解释一下!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xinze1
2003-11-25
打赏
举报
回复
呵呵.偶真是才疏学浅啊!!!(回家看书的途中~~~~~~~)
xinze1
2003-11-25
打赏
举报
回复
公有继承:就是父类中的所有成员函数和数据成员,继承到子类中都保留其原来的public private protected 不变,子类能够访问父类public protected 的成员,但是不能访问 private 的成员;
私有继承:就是父类中的所有成员到子类都成为了private的了.剩余的就不用多说了吧,从上面的推喽!!
保护继承,我没有听说过啊,有这样的继承吗方式?
EricLao
2003-11-25
打赏
举报
回复
转贴:
1. 公有继承(public)
公有继承的特点是基类的公有成员和保护成员作为派生类的成员时,它们都保持原有的状态,而基类的私有成员仍然是私有的。
2. 私有继承(private)
私有继承的特点是基类的公有成员和保护成员都作为派生类的私有成员,并且不能被这个派生类的子类所访问。
3. 保护继承(protected)
保护继承的特点是基类的所有公有成员和保护成员都成为派生类的保护成员,并且只能被它的派生类成员函数或友元访问,基类的私有成员仍然是私有的。
下面列出三种不同的继承方式的基类特性和派生类特性。
不同继承方式的基类和派生类特性
—————————————————————————————————
继承方式 | 基类特性 | 派生类特性
—————————————————————————————————
| public | public
公有继承 | protected | protected
| private | 不可访问
—————————————————————————————————
| public | private
私有继承 | protected | private
| private | 不可访问
—————————————————————————————————
| public | protected
保护继承 | protected | protected
| private | 不可访问
—————————————————————————————————
为了进一步理解三种不同的继承方式在其成员的可见性方面的区别,下面从三种不同角度进行讨论。
对于公有继承方式:
(1) 基类成员对其对象的可见性:
公有成员可见,其他不可见。这里保护成员同于私有成员。
(2) 基类成员对派生类的可见性:
公有成员和保护成员可见,而私有成员不可见。这里保护成员同于公有成员。
(3) 基类成员对派生类对象的可见性:
公有成员可见,其他成员不可见。
所以,在公有继承时,派生类的对象可以访问基类中的公有成员;派生类的成员函数可以访问基类中的公有成员和保护成员。这里,一定要区分清楚派生类的对象和派生类中的成员函数对基类的访问是不同的。
对于私有继承方式:
(1) 基类成员对其对象的可见性:
公有成员可见,其他成员不可见。
(2) 基类成员对派生类的可见性:
公有成员和保护成员是可见的,而私有成员是不可见的。
(3) 基类成员对派生类对象的可见性:
所有成员都是不可见的。
所以,在私有继承时,基类的成员只能由直接派生类访问,而无法再往下继承。
对于保护继承方式:
这种继承方式与私有继承方式的情况相同。两者的区别仅在于对派生类的成员而言,对基类成员有不同的可见性。
上述所说的可见性也就是可访问性。关于可访问性还有另的一种说法。这种规则中,称派生类的对象对基类访问为水平访问,称派生类的派生类对基类的访问为垂直访问。
一般规则如下:
公有继承时,水平访问和垂直访问对基类中的公有成员不受限制;
私有继承时,水平访问和垂直访问对基类中的公有成员也不能访问;
保护继承时,对于垂直访问同于公有继承,对于水平访问同于私有继承。
对于基类中的私有成员,只能被基类中的成员函数和友元函数所访问,不能被其他的函数访问。
OpenStack 云计算管理平台(凭借强大的可扩展性,为组建企业级
私有
云和公有云提供助力)
OpenStack是一个开源的云平台管理项目,可以用于构建公有云或
私有
云平台,并且通过DASHBOARD可控制计算、存储、网络等资源池,同时它覆盖了网络、虚拟化、操作系统、服务器等各个方面,本课程主要讲解OpenStack的...
公有
继承
/
私有
继承
/
保护
继承
的区别
1.公有
继承
–public 公有
继承
时,对基类的公有成员和
保护
成员的访问属性不变,派生类的新增成员可以访问基类的公有成员和
保护
成员,但是访问不了基类的
私有
成员。派生类的对象只能访问派生类的公有成员(包括
继承
的公有成员),访问不了
保护
成员和
私有
成员。 2.
保护
继承
–protected
保护
继承
中,基类的公有成员和
保护
成员被派生类
继承
后变成
保护
成员,派生类的新增成员可以访问基类的公有成员和
保护
成员,但是访问不了基类的
私有
成员。派生类的对象不能访问派生类
继承
基类的公有成员,
保护
成员和
私有
成员,派生类的对象只能访问
公有
继承
,
私有
继承
,
保护
继承
一.公有
继承
1.在声明一个派生类时将基类的
继承
方式指定为public,称为公有
继承
。 2.用公有
继承
方式建立的派生类称为公有派生类,其基类称为公有基类 例,公有
继承
的测试 #include<iostream> using namespace std ; class A { public : void get_XY( ) { cout << "Enter two numbers of x, y : " ; cin >> x
C++公有
继承
、
私有
继承
、
保护
继承
公有
继承
(public)、
私有
继承
(private)、
保护
继承
(protected)是常用的三种
继承
方式。 1. 公有
继承
(public) 公有
继承
的特点是基类的公有成员和
保护
成员作为派生类的成员时,它们都保持原有的状态,而基类的
私有
成员仍然是
私有
的,不能被这个派生类的子类所访问。 2.
私有
继承
(private)
私有
继承
的特点是基类的公有成员和
保护
成员都作为派生类的
私有
成员,并且不能被这个派生...
c++中的公有
继承
、
私有
继承
和
保护
继承
对于公有
继承
,在派生类中,基类的公有成员、
私有
成员和
保护
成员的访问控制属性不变。且派生类的对象只能访问派生类和基类
继承
过来的公有成员。 对于
私有
继承
,在派生类中,基类的公有成员、
私有
成员和
保护
成员的访问控制属性均变为
私有
。在派生类的函数中,可以访问基类的公有成员和
保护
成员。但无法通过派生类对象访问从基类
继承
过来的成员。(即基类中的所有成员,派生类对象都不能访问) 对于
保护
继承
,在派生类中,基类的公有成员和
保护
成员的访问控制属性将变为
保护
的,
私有
成员的访问控制属性仍为
私有
的。派生类内部仍可访问基类的公有成员和
C++ 语言
64,682
社区成员
250,490
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章