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 型別 函式名 形式引數 友元函式的宣告可以放在類的私有部分,也可以放在公有部分,它們是沒有區別的,都說明是該類的乙個友元函式。乙個函式可以是多個類的友元函式,只需要在各個類中分別宣告。友元函式的呼叫與一般函式的呼叫方式和原理一...