C 友元函式及友元類的總結

2021-09-25 20:50:04 字數 830 閱讀 6361

友元函式

友元函式是可以訪問類的私有成員的函式。他一般是在類外定義的全域性函式,不屬於任何類。子啊使用前,需要在待訪問的類中申明。宣告時需要加上friend關鍵字。

格式:friend 資料型別 函式名(型別1 引數1…)

(在相應的類中申明)

class animal

friend void show(animal &obj); //宣告該函式為該類的友元。

};//全域性函式

void show(animal &obj)

int main()

友元類

若是乙個類a會頻繁的訪問另乙個類b中的私有成員,那麼我們可以把b的私有許可權向

a進行開發,這個開放方式,我們就叫做友元類。及b把a當作好朋友,a可以訪問b

中任何的資料。但是友元不具有傳遞性,友元為單向開放許可權。

格式:friend class 類名;

[注意:該類一定要存在,在**中某個地方定義過]

class girl;

//宣告girl類

class person

friend class girl;};

class girl

};

【如上面這段**中,在申明類girl為類person的友元時,需要先對girl進行申明,因為它的定義在類person的後面,需要告訴編譯器讓編譯器去找到該類】

​ 【特點】

友元關係是單向的,不具備交換性。(如:我把你當好朋友,你不一定把我當做好朋友)

友元函式不具備傳遞性(如:你是我的好朋友,但是你的好朋友不一定是我的好朋友)

友元(友元函式 友元類 類成員函式的友元)

friend 友元機制 允許乙個類將對其非公有成員的訪問許可權授予指定的函式或者類。我們可以將友元大致分為3類 友元函式 是指某些雖然不是類的成員函式,但是能夠訪問這個類的所有成員的函式。比如我們下列的 include class test friend void show test rhs 宣告 ...

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

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

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

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