參考《the c++programming language》special 3rd edition
類成員可以是public、protected或者private:
如果是private,只能被類的成員函式和類的友員訪問
如果是protected,可以被類的成員函式和類的友員,以及該類的派生類的成員函式和友員訪問
如果是public,可以被所有的函式訪問
訪問基類成員:
假設d派生自b:
如果b是private基類(class d:private b),b的public和protected成員只能被d的成員函式和友員訪問。只有d的成員或友員可以把d*轉為b*。
如果b是protected基類(class d:protected b),b的public和protected成員只能被d的成員函式和友員,以及d的派生類的成員函式和友員訪問。只有d的成員或友員,以及d的派生類的成員或友員可以把d*轉為b*。
如果b是public基類(class d:public b),b的public成員可以被所有的函式訪問。b的protected成員只能被d的成員函式和友員,以及d的派生類的成員函式和友員訪問。任何函式都可以把d*轉為b*。
私有繼承的乙個例子
當有了vector或者list,要實現乙個stack時,我們不想從頭做起,因為stack和vector或list很像,只不過對內部資料的訪問被限制在兩端(後進先出)。私有繼承是個很好的選擇:
C 中類的訪問控制
如下 tstring tstring const tstring string1 其中data為private變數,但在複製建構函式中確訪問了string1的data變數。此方法是可以的。原理見引用這篇文章。關鍵應用 訪問類的private變數。class num num num int data ...
C 中的類訪問控制
c 中 public,protected,private 訪問標號小結 第一 private,public,protected 訪問標號的訪問範圍。private 只能由1.該類中的函式 2.其友元函式訪問。不能被任何其他訪問,該類的物件也不能訪問。protected 可以被1.該類中的函式 2.子...
C 中類訪問許可權控制
c 中類訪問許可權控制 第一 private,public,protected 訪問標號的訪問範圍,在沒有繼承的情況下 private 只能由1.該類中的函式 2.其友元函式訪問。不能被任何其他訪問,該類的物件也不能訪問。protected 可以被1.該類中的函式 2.子類的函式 以及3.其友元函式...