C 類的友元函式

2021-09-11 10:46:35 字數 661 閱讀 7564

可以通過類的成員方法,訪問它的私有資料。

該函式的作用域在類中。

在外部調動該函式必須通過成員訪問符訪問,也就是必須經由乙個物件去啟用(有乙個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 類機制實現了資料的隱藏與封裝,類的資料成員一般定義為私有成員,成員函式一般定義為公有的。有時需要定義一些函式,這些函式不是類的一部分,但又需要頻繁地訪問類的資料成員,這時可以將這些函式定義為該類的友元函式。除了友元函式外,還有友元類,兩者統稱為友元。友元的作用是提高了程式的執行效率 即減少了型別...