程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C++派生訪問闡明符小記(引薦)

C++派生訪問闡明符小記(引薦)

編輯:關於C++

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved