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++派生訪問闡明符小記(引薦)就是分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持。