生活随笔
收集整理的這篇文章主要介紹了
在继承中派生类成员的访问权限测试
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
派生類對自身基類的private成員沒有訪問權限,對基類對象的protected成員沒有訪問權限,對派生類對象的(基類之外)的private和protected成員具有訪問權限。
由于C++基礎不好,平時也不用它,導致今天才糾正一個非常關鍵的錯誤,類的訪問權限,是對類而言的,而不是對類的對象而言的。一直都理解錯了。這句話都沒臉寫出來,還是寫下來了。
下面是一段簡答的測試代碼。對于調用成員函數的對象test,基類形參,派生類形參三者的訪問權限做了測試如下:
[cpp]?view plaincopyprint?
#include?<iostream>?? using?namespace?std;?? ?? class?base?? {?? ????????public:?? ????????????????int?pub;?? ????????protected:?? ????????????????int?pro;?? ????????private:?? ????????????????int?pri;?? };?? ?? class?derive?:?public?base?? {?? ????????public:?? ????????????????int?newpub;?? ????????protected:?? ????????????????int?newpro;?? ????????private:?? ????????????????int?newpri;?? ?? ????????public:?? ????????????????int?func(class?base?a,?class?derive?b)?? ????????????????{?? ?????????????????? ????????????????自身的?基類成員和非基類成員訪問權限測試?? ????????????????????????cout?<<?newpub?<<?endl;?? ????????????????????????cout?<<?newpro?<<?endl;?? ????????????????????????cout?<<?newpri?<<?endl;?? ????????????????????????cout?<<?pub?<<?endl;?? ????????????????????????cout?<<?pro?<<?endl;?? ?????????? ?????????? ?????????????????? ????????????????對基類對象訪問權限的測試?? ????????????????????????cout?<<?a.pub?<<?endl;?? ?????????? ?????????? ?????????? ?????????????????? ????????????????對派生類對象的基類以及非基類成員訪問權限測試?? ????????????????????????cout?<<?b.pub?<<?endl;?? ????????????????????????cout?<<?b.pro?<<?endl;?? ?????????? ????????????????????????cout?<<?b.newpub?<<?endl;?? ????????????????????????cout?<<?b.newpro?<<?endl;?? ????????????????????????cout?<<?b.newpri?<<?endl;??????????????????????????????????????????????????????????????????????? ?????????????????? ?? ????????????????????????return?0;?? ????????????????}?? };?? ?? int?main()?? {?? ????????class?base?a;?? ????????class?derive?b;?? ????????class?derive?test;?? ????????test.func(a,?b);?? ????????return?0;?? }??
總結
以上是生活随笔為你收集整理的在继承中派生类成员的访问权限测试的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。