C++ 友元函數

——可以訪問類的私有成員的非成員函數函數

建立友元

將其原型放在類聲明中,並在原型聲明前加上關鍵字friendspa

friend Time operator *(double m, const Time &t);    // goes in class declaration

 

  • operator*()函數不是成員函數,所以不能使用成員運算符調用
  • 訪問權限與成員函數相同
Time operator *(double ml, const Time &t)    // friend not used in definition
{
    ...
}

  只有在類聲明中的原型中才能使用friend。除非函數定義也是原型,不然不能在函數定義中使用該關鍵字blog

友元是否有於OOP:

只有類聲明能夠決定哪個函數是友元,所以類聲明仍然控制了哪些函數能夠訪問私有數據。總之,類方法和友元只是表達類接口的兩種不一樣的機制接口

相關文章
相關標籤/搜索