C 友元函式

2021-10-03 22:42:11 字數 1193 閱讀 9240

為什麼要有友元函式?友元的存在可以共享資料資源,減小系統的呼叫開銷,提公升執行效率。funa想訪問b類中的私有成員函式,只需要在b類的宣告中加個friend returntype funa(t t);即可。其中friend是友元函式的標識,告訴編譯器這是友元函式,不具備this指標,但是它能訪問b類的私有成員函式,returntype 函式返回型別, t入參型別,t實參。

優點:提公升程式設計效率,提公升執行效率,並且表達清晰簡單

缺點:破壞了封裝機制,所以盡量不使用友元。

友元沒有this指標

訪問非static的成員時,需要物件做引數

訪問static的成員或者全域性變數時,不需要物件做引數

如果做引數的物件是全域性成員,不需要物件做引數

#include using namespace std;

class print

; friend void frindfunc(print &p);

void printnum()

; ~print(){};

};void frindfunc(print &p)

int main()

#include using namespace std;

class print;

class test

;test::test()

test::~test()

class print

; friend void test::frindfunc(print &p);

void printnum()

; ~print(){};

};void test::frindfunc(print &p)

int main()

#include using namespace std;

class print;

class test

;test::test()

void test::frindfunc(print &p)

test::~test()

class print

; friend class test;

void printnum()

; ~print(){};

};int main()

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

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

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

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

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

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