友元(運算符重載深入)


友元函數

創建友元的第一步就是將其原型放在類聲明中,並在原型前面加上關鍵字friend

class Time
{
public:
         friend Time operator*(double m, const Time & t);
}

該原型意味着以下兩點:

  1. 友元函數雖然是在類中聲明的,但是它不是類的成員函數
  2. 友元函數雖然不是類的成員函數,但是它與類成員函數的訪問權限相同

由於友元函數不是類成員函數,所以友元函數定義時不用使用Time::限定符。

Time operator*(double m, const Time & t)
{
  ...  
}

 

用友元函數重載cout

std::ostream & operator<<(std::ostream & os, const Time & t)
{
    os<<"hours: "<<t.hours<<", minutes: "<<t.minutes<<std::endl;
    return os;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM