Ex:

class test

{

public:

           test();

           number print();

 

private:

           int a;

           int b;

          

friend int Fri(test);       //friend參數必須為class型別才可存取私有成員

};

 

int Fri(test f)

{

           f.a = 5;

           return 0;

}

 

 

用在重載運算子(Ex:input output)

 (用於物件相加減乘除運算)

( .  ::  .*  ?: 無法重載)

因為這些運算子不能被寫為class成員

 

Friend可以是函式or類別

 

Friend解決重載運算子時左項必須為物件的限制

 

Ex: obj1 = obj2 + 3  (O)

    obj1 = 3 + obj2  (X)

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 flyinsky76 的頭像
    flyinsky76

    Deja Vu

    flyinsky76 發表在 痞客邦 留言(0) 人氣()