可以通過類的成員方法,訪問它的私有資料。
該函式的作用域在類中。
在外部調動該函式必須通過成員訪問符訪問,也就是必須經由乙個物件去啟用(有乙個this指標)。
友元函式是類的輔助手段,友元能夠引用類中本來被隱蔽的資訊。
使用友元的目的是基於程式的執行效率。
一般運算子過載和兩個類共享資料這兩個場合需要使用友元。
友元可以是函式,也可以是類,在乙個類中宣告為友元類,則該友元類都可以訪問他的私有資料。
友元是非傳遞的。
友元函式作用域不屬於類的作用域,不是類的成員,也就不是類的方法,不受公有、私有、保護限制。
友元函式可以在類中實現,也可以在類外實現(一般是在類的外部實現)。
因為友元函式沒有this指標,則引數要有三種情況:
要訪問非static成員時,需要物件做引數;
要訪問static成員或全域性變數時,則不需要物件做引數;
如果做引數的物件是全域性物件,則不需要物件做引數;
#includeusing namespace std;
class a;
void friendfun(a *ptr,int x)
void a::memberfun(int x)
int main()
C 友元函式 友元類
友元函式和友元類 採用類的機制後實現了資料的隱藏與封裝,類的資料成員一般定義為私有成員,成員函式一般定義為公有的,依此提供類與外界間的通訊介面。但是,有時需要定義一些函式,這些函式不是類的一部分,但又需要頻繁地訪問類的資料成員,這時可以將這些函式定義為該函式的友元函式。除了友元函式外,還有友元類,兩...
C 友元函式 友元類
友元函式和友元類 採用類的機制後實現了資料的隱藏與封裝,類的資料成員一般定義為私有成員,成員函式一般定義為公有的,依此提供類與外界間的通訊介面。但是,有時需要定義一些函式,這些函式不是類的一部分,但又需要頻繁地訪問類的資料成員,這時可以將這些函式定義為該函式的友元函式。除了友元函式外,還有友元類,兩...
c 友元類 友元函式
c 類機制實現了資料的隱藏與封裝,類的資料成員一般定義為私有成員,成員函式一般定義為公有的。有時需要定義一些函式,這些函式不是類的一部分,但又需要頻繁地訪問類的資料成員,這時可以將這些函式定義為該類的友元函式。除了友元函式外,還有友元類,兩者統稱為友元。友元的作用是提高了程式的執行效率 即減少了型別...