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.pswp.cn/news/274726.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/274726.shtml
英文地址,請注明出處:http://en.pswp.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…