天天看點

C++-友元(friend)

類的封裝性具有資訊隐藏的能力,它使外部函數隻能通過類的public成員函數才能通路類的private成員,但如果要多次通路,不僅操作麻煩,而且時間空間的開銷大。

友元機制允許一個類授權其他函數直接通路類的private和protected成員。

友元包括友元函數,友元類,友元成員函數,最常用的就是友元函數。

class X {

friend T f(…)

};

T f(…) {

}

因為友元函數不是類的成員函數,是以不能加上類名::。友元函數的參數一般都要有類對象。

說明:

1、友元函數不是類的成員函數,是以放在private,protected,public都是一樣的。

2、友元不具有逆向性和傳遞性。

一個類還可以是另一個類的友元,有緣類的所有成員函數都是另一個類的友元函數。

聲明類B是類A的友元類:

class A{

friend class B;

};

class B{

};

繼續閱讀