類允許其他類或者函式訪問它的非公有成員,但我們需要將訪問類非公有成員的其他類或者函式成為它的友元。
一、友元函式
如果類想要把乙個函式作為他的友元,只需要增加一條以 friend 關鍵字開始的函式宣告語句即可。
例如:class a;
void fri_fun(a aa);
class a
};類 a 的成員函式可以訪問類 b 的私有成員。
注意:如果我們把類 a 放在類 b 的前邊,此時編譯會出錯,因為在編譯類 a 時,我們並沒有定義類 b。
我們也可以將成員函式作為另乙個類的友元,我們將上乙個**更改,僅僅讓類 a 的成員函式 aa 可以訪問類 b 的私有成員:
class b;
class a;
class b;
void a::aa(b c)
我們將類 a 的成員函式 aa 作為類 b 的友元函式,這是我們必須在類 b 之前宣告函式 aa (我們的**,在類 a 中已經宣告),在類 b 之後定義(如果用到類 b 的成員),在友元宣告中我們必須指明該函式屬於哪乙個類。
在類 a 中,成員函式 aa 的形參包含 b 類型別元素,所以在類 a 之前,必須有類 b 的前向宣告。
Mysql修改密碼的三種方法及注意事項
注意事項 檢視使用者名稱和密碼 檢視埠 mysql u root mysql set password for root localhost password newpass mysqladmin u root password newpass 如果root已經設定過密碼,採用如下方法 mysqla...
友元函式的幾點注意事項和例項
友元函式說明如下 1 必須在類的說明中說明友元函式,說明時以關鍵字friend開頭,後跟友元函式的函式原型,友元函式的說明可以出現在類的任何地方,包括在private和public部分 2 注意友元函式不是類的成員函式,所以友元函式的實現和普通函式一樣,在實現時不用 指示屬於哪個類,只有成員函式才使...
友元成員函式使用時的注意事項
友元 的概念其實是針對於類的私有成員來說的,乙個類的由於封裝的緣故,類體中私有成員是不可以被外界訪問的,無論是繼承也好,都是無法訪問類內私有成員的。但是正是有那麼一些人,願意打破陳規破例訪問類體內的私有成員,此時 友元 的概念閃亮登場。其實我們的普通函式是可以訪問類體中的public,但是自從來了 ...