C 友元函式

2021-08-20 04:54:06 字數 1197 閱讀 3284

最近在學習c++類這一塊,關於友元函式和友元類,非常有用,但感覺還是不好理解,但是井下心來,理解,需要把握一下幾點。

首先講友元函式。

(1)友元函式:

1)c++中引入友元函式,是為在該類中提供乙個對外(除了他自己意外)訪問的視窗;

2)這個友元函式他不屬於該類的成員函式,他是定義在類外的普通函式,只是在類中宣告該函式可以直接訪問類中的private或者protected成員。

使用友元函式宣告的一般形式:

friend 《返回型別》

《函式名》 (《引數列表》);

使用友元函式注意的要點:

類中通過使用關鍵字friend 來修飾友元函式,但該函式並不是類的成員函式,其宣告可以放在類的私有部分,也可放在共有部分。友元函式的定義在類體外實現,不需要加類限定。

乙個類中的成員函式可以是另外乙個類的友元函式,而且乙個函式可以是多個類友元函式。

友元函式可以訪問類中的私有成員和其他資料,但是訪問不可直接使用資料成員,需要通過對物件進行引用。

友元函式在呼叫上同一般函式一樣,不必通過對物件進行引用。

例如如下形式:這裡解釋上面的1,3,4要點的使用,加以理解。

#include 

#include

using

namespace

std;

class persion;

persion::persion(char *pn) //建構函式

void persion::disp()

void main()

關於要點2的使用,我給出一段**案例:

#include 

#include

using

namespace

std;

class wheel;

class car;

car::car(char *pn)

class wheel;

wheel::wheel(int s)

int main(int argc, char

const *argv)

void car::run(wheel &w) //car類成員函式的實現

C 友元函式 友元類 友元成員函式

眾所周知,c 控制對類物件私有部分的訪問。通常,公有類方法提供唯一的訪問途徑,但是有時候這種限制太嚴格,以至於不適合特定的程式設計問題。在這種情況下,c 提供了另外一種形式的訪問許可權 友元,友元有3種 友元函式 友元類 友元成員函式。通過讓函式成為類的友元 即 友元函式 可以賦予該函式與類的成員函...

友元 友元函式 友元類和友元成員函式 C

有些情況下,允許特定的非成員函式訪問乙個類的私有成員,同時仍阻止一般的訪問,這是很方便做到的。例如被過載的操作符,如輸入或輸出操作符,經常需要訪問類的私有資料成員。友元 frend 機制允許乙個類將對其非公有成員的訪問權授予指定的函式或者類,友元的宣告以friend開始,它只能出現在類定義的內部,友...

友元 友元函式 友元類和友元成員函式 C

有些情況下,允許特定的非成員函式訪問乙個類的私有成員,同時仍阻止一般的訪問,這是很方便做到的。例如被過載的操作符,如輸入或輸出操作符,經常需要訪問類的私有資料成員。友元 frend 機制允許乙個類將對其非公有成員的訪問權授予指定的函式或者類,友元的宣告以friend開始,它只能出現在類定義的內部,友...