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)
全站熱搜