public protect private继承
1.?public繼承被稱為類型繼承(type?inheritance)。往往反映is-a關(guān)系。
2.?protected繼承基類的所有公有成員都成為派生類的protected成員。這意味著它們可以被后來從該類派生的類訪問,但不能在層次結(jié)構(gòu)之外被訪問。
3.?private繼承被稱為實(shí)現(xiàn)繼承(implementation?inheritance)。派生類提供自己的公有接口,重用基類的實(shí)現(xiàn)。?
?
數(shù)據(jù)成員的訪問域變化:
1.?public繼承的話,原來父類的public?,protected成員繼承到子類中,類型不變員
2.?protected繼承的話,原來父類的public?,protected成員繼承到子類中,并成為protected類型成員
3.?private繼承的話,原來父類的public?,protected成員繼承到子類中,并成為private類型成員
PS一下
理想情況下,是能不用public就不用,因?yàn)橐坏﹑ublic就引發(fā)一系列如client可以用base?pointer去new?inherit?class,則dtor需要是virtual的問題
但大多數(shù)情況下都是public的情況,大家對(duì)此也比較熟悉,所以下面談?wù)劜怀R姷那闆r
在private?inheritance時(shí),如果不存在必須實(shí)現(xiàn)virtual?method的情況下,推薦選擇composition,避免了未來可能的multi?inheritance導(dǎo)致出現(xiàn)的討厭的菱形結(jié)構(gòu)從而引發(fā)出現(xiàn)的C++陰暗面:?virtual?inheritance,即不要因?yàn)橹皇窍肷偾命c(diǎn)代碼而失去了良好的設(shè)計(jì)
protected和private區(qū)別在于:如果只是為了重用code,在不能composition的情況下則優(yōu)先考慮private,除非派生類還會(huì)需要或是有可能會(huì)被其他類繼承的話,才需要變成protected。
轉(zhuǎn)載于:https://www.cnblogs.com/songQQ/archive/2009/08/26/1554700.html
總結(jié)
以上是生活随笔為你收集整理的public protect private继承的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JSONArray.fromObject
- 下一篇: 自动添加注释