一.對友元的介紹分為友元函式和友元類。
二.對友元函式的介紹分為普通友元函式和友元成員函式。
1.對普通友元函式的介紹:將普通函式宣告為友元函式。
**示例如下:
#includeusing namespace std;
class sum
friend void display(sum &);//將普通成員函式宣告為該類的友元函式
void display_sum()
void display(score2 &s);//宣告display函式,形參為score2物件,注意需要進行提前宣告
private:
float ch; float en;
};class score2
friend void score1::display(score2 &s);//宣告此函式為該類的友元函式
private:
float mat; float phy;
};void score1::display(score2 &s)
int main()
(1)注意提前引用宣告,如上述**中的
void display(score2 &s);需要提前進行引用宣告 class score2;
(2)只能單向訪問,形參一般是類物件。
三.對友元類的介紹。
(1)友元的關係是單向的。
(2)友元的關係無傳遞性。
(3)宣告友元類的一般形式:friend 類名
(4)宣告某一類為另一類的友元類,則某一類的所有成員函式都可以訪問另一類的所有成員。
示例**如下:
#includeusing namespace std;
class score2;//對類score2進行提前引用宣告
class score1
void display(score2 s);//對display函式進行宣告,形參為類物件
private:
float ch; float en;
};class score2
friend score1;//宣告score1為score2的友元類
private:
float mat; float phy;
};void score1::display(score2 s)
int main()
C 友元介紹
友元分為 友元函式和友元類 友元提供了一種突破封裝的方式,有時提供了便利。但是友元會增加耦合度,破壞了封裝。友元函式可以直接訪問類的私有成員,它是定義在類外部的普通函式,不屬於任何類,但需要在類的內部聲 明,宣告時需要加friend關鍵字。class date private int year in...
對c 友元函式和友元類的理解
1,友元函式的定義和作用 我們已知道類具有封裝和資訊隱藏的特性。只有類的成員函式才能訪問類的私有成員,程式中的其他函式是無法訪問私有成員的。非成員函式可以訪問類中的公有成員,但是如果將資料成員都定義為公有的,這又破壞了隱藏的特性。另外,應該看到在某些情況下,特別是在對某些成員函式多次呼叫時,由於引數...
友元(友元函式 友元類 類成員函式的友元)
friend 友元機制 允許乙個類將對其非公有成員的訪問許可權授予指定的函式或者類。我們可以將友元大致分為3類 友元函式 是指某些雖然不是類的成員函式,但是能夠訪問這個類的所有成員的函式。比如我們下列的 include class test friend void show test rhs 宣告 ...