自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C++友元函數(shù)基本應用方式解析

開發(fā) 后端
C++友元函數(shù)是一個非成員函數(shù),它并不是授予友元關(guān)系的那個類的成員。我們今天就可以通過對這篇文章的解讀來詳細了解其中的應用技巧。

C++編程語言中,有很多功能及應用方式與其他編程語言大不相同,而且使用方式靈活,可以使程序員大大提高編程效率。在這里我們將會針對C++友元函數(shù)的基本概念進行一個詳細的介紹。#t#

定義:允許一個類將對其非公有成員的訪問權(quán)授予指定的類或函數(shù)(分別是友元類和C++友元函數(shù))。

說明:友元是非成員函數(shù),即它并不是授予友元關(guān)系的那個類的成員,它的聲明可以出現(xiàn)在類中的任何地方(因此它們也不受其聲明出現(xiàn)部分的訪問控制的影響)

編程風格:雖然友元的聲明可以出現(xiàn)在類中任何地方,但是將友元聲明成組的放在類定義的開始或者結(jié)尾是個好主意。

注:1、當將類A的成員函數(shù)F聲明為類B的友元時,必須在B的定義中將F用A限定。

2、C++友元函數(shù)只能訪問對象的私有成員,不能直接訪問類的私有成員(因此在調(diào)用友元時,必須在實參中指定友元要訪問的類的對象)。

兩個性質(zhì):

1、不具有傳遞性。

即:假設B是A的友元類,C是B的C++友元函數(shù),那么C不能直接訪問A的私有成員。

2、不具有繼承性。

即:假設B是基類A的友元函數(shù),C是A的繼承類,那么B不能直接訪問C的私有成員。

如果派生類想要將自己成員的訪問權(quán)授予其基類的友元,派生類必須顯式地這樣聲明友元。 //基類的友元對從該基類派生的類型沒有特殊訪問權(quán)限。

  1. class A  
  2. {  
  3. friend class C;  
  4. }  
  5. class B : public A  
  6. {  
  7. friend class C; //friend 無法繼承  
  8. }  
  9. class C  
  10. {  

 

同樣,如果基類和派生類都需要訪問另一個類,則那個類必須特地將訪問權(quán)限授予基類和每一個派生類.

  1. class A  
  2. {  
  3. }  
  4. class B : public A  
  5. {  
  6. }  
  7. class C  
  8. {  
  9. friend class A;  
  10. friend class B;  

 

以上就是對C++友元函數(shù)的相關(guān)概念介紹。
 

責任編輯:曹凱 來源: 博客園
相關(guān)推薦

2010-02-02 14:45:35

C++ typeof

2010-02-06 17:27:03

C++ replace

2010-02-04 17:16:33

C++調(diào)用python

2011-07-15 13:49:30

C++友元函數(shù)友元類

2010-02-06 16:16:01

C++冒泡排序

2010-01-21 11:23:58

C++函數(shù)調(diào)用

2010-02-03 17:23:27

C++使用接口

2010-03-03 16:40:55

Python HTTP

2010-03-03 14:30:05

Python set類

2010-03-03 14:40:37

Python打包方法

2010-03-04 09:27:34

調(diào)用Python腳本

2010-03-03 10:03:55

Python連接Sql

2010-02-06 16:39:45

C++ assert(

2010-02-23 15:58:57

WCF Session

2013-12-12 16:10:21

Lua腳本語言

2010-03-03 16:08:26

Python取得文件列

2010-01-25 13:45:04

Android單選框

2010-03-03 15:17:46

Python調(diào)用MyS

2010-02-02 17:47:59

C++操作剪貼板

2010-02-05 10:23:09

C++基本函數(shù)
點贊
收藏

51CTO技術(shù)棧公眾號