C++派生訪問闡明符小記(引薦)。本站提示廣大學習愛好者:(C++派生訪問闡明符小記(引薦))文章只能為提供參考,不一定能成為您想要的結果。以下是C++派生訪問闡明符小記(引薦)正文
如下所示:
#include <iostream> using namespace std; class a{ protected: int i; private: int j; public: int k; }; class b:public a{//派生訪問闡明符對派生類內對其直接基類的訪問沒有影響,次要是用於控制派生類用戶(包括派生類的派生類)對基類成員的訪問權限 friend void f1(a a1){ cout<<a1.i;//錯誤,派生類的成員或友元不能訪問基類對象protected成員(protected特性) cout<<a1.j;//錯誤,派生類不能訪問基類private成員 cout<<a1.k;//正確 } friend void f1(b b1){ cout<<b1.i;//正確,派生類可以經過派生類對象訪問基類protected成員 cout<<b1.j;//錯誤,派生類不能訪問基類private成員 cout<<b1.k;//正確 } void f2(a a1){ cout<<a1.i;//錯誤,派生類的成員或友元不能訪問基類對象protected成員(protected特性) cout<<a1.j;//錯誤,派生類不能訪問基類private成員 cout<<a1.k;//正確 } void f2(b b1){ cout<<b1.i;//正確,派生類可以經過派生類對象訪問基類protected成員 cout<<b1.j;//錯誤,派生類不能訪問基類private成員 cout<<b1.k;//正確 } void f3(){ cout<<i;//正確,派生類可直接訪問基類protected成員 cout<<j;//錯誤,派生類不能訪問基類private成員 cout<<k;//正確 } }; class c:private a{} class e:protected a{} class f:public c{ void f4(){ cout<<k;//出錯,緣由是f的直接基類c由a private派生 } } int main() { f f1; b b1; cout<<f1.k;//出錯,緣由是f的直接基類c由a private派生 system("pause"); return 0; }
以上這篇C++派生訪問闡明符小記(引薦)就是分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持。