C++中的三种继承public,protected,private(转)

三种访问权限

public:可以被任意实体访问

protected:只允许子类及本类的成员函数访问

private:只允许本类的成员函数访问

 

三种继承方式

public 继承

protect 继承

private 继承

 

组合结果

基类中 继承方式 子类中

public & public继承 => public

public & protected继承 => protected

public & private继承 = > private

 

protected & public继承 => protected

protected & protected继承 => protected

protected & private继承 = > private

 

private & public继承 => 子类无权访问

private & protected继承 => 子类无权访问

private & private继承 = > 子类无权访问

 

由以上组合结果可以看出

1、public继承不改变基类成员的访问权限

2、private继承使得基类所有成员在子类中的访问权限变为private

3、protected继承将基类中public成员变为子类的protected成员,其它成员的访问 权限不变。

4、基类中的private成员不受继承方式的影响,子类永远无权访问。

 

此外,在使用private继承时,还存在另外一种机制:准许访问 

我们已经知道,在基类以private方式被继承时,其public和protected成员在子类中变为private成员。然而某些情况下,需要在子类中将一个或多个继承的成员恢复其在基类中的访问权限。

C++支持以两种方式实现该目的

方法一,使用using 语句,这是C++标准建议使用的方式

方法二,使用访问声明,形式为 base-class::member;, 位置在子类中适当的访问声明处。(注,只能恢复原有访问权限,而不能提高或降低访问权限)

 

c++ 中为什么要定义public protect private 三种访问权限?

有些我们需要给外面看的,也就是对外接口,那么就是public,如果没有,那么我们做的工作将是毫无意义的,(别人没法用)

如果我们不想让别人知道内部的实现细节,那么就是private,比如,我们这么:

public:

count()

{

  mycount();

}

private:

  mycount();

这样的,count是对外的接口,而实现的时候,我们不想让外面知道怎么实现的,就用private,防止它用mycount!

如果我们不想让别人知道,想让自己的孩子什么的知道(这里涉及到继承),那么就可以作为protected!

这样的话,private是自己私有的,protected是可以让孩子知道的,public是公开的!

 

因为有需求,所以才有这样 的设计!

 

 

http://www.cnblogs.com/BeyondAnyTime/archive/2012/05/23/2514964.html

转载于:https://www.cnblogs.com/bizhu/archive/2012/07/20/2601303.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/274726.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何碎片化时间学前端,了解前沿趋势

我很开心在前端行业认识了一批优秀且乐于分享的朋友,他们的技术分享与职业观点让我获益良多,推荐给大家一起关注。程序员成长指北Node.js 前端工程化 低代码考拉小姐姐,一个有趣且乐于分享的人!目前就职于某知名外企,负…

谷歌pay破解_Google Pay缺少Google闻名的一件事-UX案例研究

谷歌pay破解Disclaimer: The views expressed in the blog post is purely based on personal experience. It was not influenced by any external factor.When Google launched Tez (now Google Pay) in India during 2017, their primary goal was to design a simple payme…

进阶高级前端,这位大前端架构师一定不能错过

今天给大家介绍一位好朋友:这波能反杀:一位拥有十年工作经验,对学习方法有独到理解的资深大前端架构师。一、博客早在 2017 年初,波神在简书平台以《前端基础进阶》为名,更新了一系列优质文章,获得大量认可…

memcached应用策略(转)

memcached应用策略(转)(2012-04-05 11:10:02) 转载▼标签: memcached 应用策略 it分类: linux_c memcached应用策略memcached 主要的作用是为减轻大访问量对数据库的冲击,所以一般的逻辑是首先从memcached中读取数据&a…

突然讨厌做前端,讨厌代码_为什么用户讨厌重新设计

突然讨厌做前端,讨厌代码重点 (Top highlight)The core of design thinking is to only design something that will bring value and fill the gap in consumer needs. Right? Why else would one design something that no one asked for? While that may be true to some …

那些年我面过的「六年经验」的初级工程师

大家好,我是若川。持续组织了8个月源码共读活动,感兴趣的可以 点此加我微信ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。历史面试系列。另外…

sql反模式分析2

第八章 多列属性目标:存储多值属性 为一个bug设置多个标签反模式:创建多个列,为bugs创建tag1,tag2,tag3几个列保存标签。标签必须放于其中一个。1.查询数据,比如搜索这三列,可以使用in语句2.添…

更多信息请关注微信公众号_为什么我们更多地关注表面异常?

更多信息请关注微信公众号Don’t you feel lucky to find a single seasoned curly fry in your bunch of plain old boring french fries? Do you remember highlighting important texts of your study materials before the exams? Both situations might seem irrelevant…

eclipse中的汉字极小的解决方案(转载)

eclipse中的汉字极小的解决方案(转载) 可能新装了eclipse后,写java代码的时候发现,写注释的时候发现,汉字小的可怜,网上搜一下,又是改字体又是设置字体大小,试用后发现都不是针对这个的方法。 无奈在自己摸…

面试官经常问的观察者模式如何实现~

大家好,我是若川。持续组织了8个月源码共读活动,感兴趣的可以 点此加我微信ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。历史面试系列。另外…

旅行者 问题_门槛项目:没有旅行者回到他的原籍城市。

旅行者 问题Sohini Mukherjee| MFA| Spring 2020Sohini Mukherjee | 外交部| 2020年Spring Artivive app to see the full Artivive应用程序可查看完整的#AR experience.#AR体验。 Prompt:提示: As second semester, first year graduate students, you are at a …

产品经理懂技术=流氓会武术(zz)

最近七年,我都在做互联网产品,其中前五年分别在创业公司和上市公司里,做别人的产品;近两年在创业,做自己的产品。 我的体会是:产品经理需要懂技术,创业者尤其需要。但前提是你总觉得有股憋不住的…

技术人的七大必备特质

大家好,我是若川。持续组织了8个月源码共读活动,感兴趣的可以 点此加我微信ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。历史面试系列。另外…

figma下载_在Figma中进行原型制作的技巧和窍门

figma下载自定义过渡和微交互 (Custom transitions and micro-interactions) Yep, I know that there are a lot of useful built-in transition effects in Figma already, but here I want to talk about custom micro-interactions, complicated transitions and show you h…

布局收藏用

http://www.aa25.cn/layout/index.shtml转载于:https://www.cnblogs.com/OceanChen/archive/2012/07/25/2608882.html

技术日新月异,发展迅速,如何不断扩展视野

技术日新月异,发展迅速,作为一个与时俱进的互联网人,需要不断地学习扩宽视野。今天为大家推荐几个技术领域中出类拔萃的公众号,它们的每一篇推文都值得你点开!1叶小钗技术管理 技术转型 公司治理叶小钗,原腾…

不想当全栈的设计师不是_但我不想成为产品设计师

不想当全栈的设计师不是重点 (Top highlight)I’ve made a huge mistake, I thought to myself, as a realization washed over me in the middle of an interview for a product design role.我对自己想,我犯了一个巨大的错误,因为在接受产品设计职务的…

学习 WCF (6)--学习调用WCF服务的各种方法

来自:http://www.cnblogs.com/gaoweipeng/archive/2009/07/26/1528263.html 根据不同的情况,我们可以用不同的方法调用WCF服务,本文简单总结了一下调用WCF的一些方法(代理类,Ajax...),分享给大家。开发工具调用WCF 这中…

[科普文] Vue3 到底更新了什么?

Vue3 已经发布一段时间了,这个版本从底层实现到上层 API 设计都发生了非常大的变化,但具体改变了些什么呢?一起简单盘点下:一、Composition API使用传统的option配置方法写组件的时候问题,随着业务复杂度越来越高&…

ipados_如何设计具有最新iPadOS 14功能的出色iPad应用

ipadosWe all know that iPad Pro already has a seriously powerful computing power and that it’s possible to create meaningful stuff with Apple Pen.我们都知道iPad Pro已经具有强大的计算能力,并且可以使用Apple Pen创建有意义的东西。 But do we really…