友員函式 friend

2021-09-13 09:47:33 字數 1186 閱讀 7557

1、普通函式做友員函式,為什麼,什麼場景?(《運算子過載)

2、某個類的成員函式作為另乙個類的友員函式?(如何使用)

3、友員類,有啥作用(宣告後其成員都變為另乙個類的友員)

3、友員函式是如何定義的 ? (宣告名和定義)

4、友員函式是否可以繼承? (基類和派生類)

5、乙個類的成員函式是否可以作為另乙個類的友員函式? (類a 和 類b,定義的先後順序)

6、友員函式的優缺點,是否推薦使用?

1、

class a

friend void

print

(a &a)

;//宣告友員 };

void

print

(a &a)

2、
class b;

//先宣告這個類下面需要到

class a

void

print

(b &b)

;//b類的定義後面給出,前面已經提前給出了宣告 };

class b

friend void a:

:print

(b &b)

;//宣告a的成員函式print為該類的友員,故在a類中可以直接使用b類物件的私有和保護資料 };

void a:

:print

(b &b)

//定義類的成員函式

intmain()

3、
class b;

//先宣告這個類下面需要到

class a

friend class b;

//這裡宣告了b類為友員類,那麼就表示b是我的朋友,所以b你可以對我的物件的私有和保護成員有操作許可權 };

class b

void

print

(a &a);}

;void b:

:print

(a &a)

//定義類的成員函式

intmain()

6、

盡量不使用友員函式

缺點:友員函式破壞了類的封裝性,降低了類的可靠性和可維護性。

優點:可以更加高效的運算元據,有很高的靈活性,使得c的函式能更好的與c++的類結合,可以更加自然的使用c++的定義輸入輸出流《的過載函式。

友元函式 friend

類的外部,也就是通過例項來訪問私有 private 或保護 protected 成員,這是被禁止的。但從實用性來說,的確有時很需要在外部訪問,c 增加了一種稱之為 友元 friend 函式的申明,將 特權 賦給一些函式 可以是全域性函式,也可以是其它類的成員函式 使之能夠訪問該類的私有和保護成員。友...

友元函式 friend

一 乙個類的成員函式有三個互不相干作用 1.可以通過類的成員方法,訪問它的私有資料。2.該函式的作用域在類中。3.在外部調動該函式必須通過成員訪問符訪問,也就是必須經由乙個物件去啟用 有乙個this指標 二 友元函式 1.友元函式作用域不屬於類的作用域,不是類的成員,也就不是類的方法,不受公有 私有...

friend 友元函式友元類

這篇是引用,具體是引用哪位的博主不查了 僅供自己回顧複習用 friend 型別 函式名 形式引數 友元函式的宣告可以放在類的私有部分,也可以放在公有部分,它們是沒有區別的,都說明是該類的乙個友元函式。乙個函式可以是多個類的友元函式,只需要在各個類中分別宣告。友元函式的呼叫與一般函式的呼叫方式和原理一...