共用方式為


Friend 函式

friend 函式不屬於類別成員,但可以存取類別的 Private 和 Protected 成員。 friend 函式並非類別成員,而是擁有特殊存取權限的一般外部函式。 friend 不在類別的範圍內,除非是另一個類別的成員,否則不能使用成員選取運算子 (. 和 –>) 呼叫。 friend 函式是由授與存取權的類別宣告。 friend 宣告可以放在類別宣告中的任何位置。 不會受存取控制關鍵字的影響。

下列範例顯示 Point 類別和 friend 函式 ChangePrivate。 friend 函式可以存取將其當做參數接收之 Point 物件的私用資料成員。

範例

// friend_functions.cpp
// compile with: /EHsc
#include <iostream>

using namespace std;
class Point
{
    friend void ChangePrivate( Point & );
public:
    Point( void ) : m_i(0) {}
    void PrintPrivate( void ){cout << m_i << endl; }

private:
    int m_i;
};

void ChangePrivate ( Point &i ) { i.m_i++; }

int main()
{
   Point sPoint;
   sPoint.PrintPrivate();
   ChangePrivate(sPoint);
   sPoint.PrintPrivate();
}
  

請參閱

參考

friend (C++)