A friend function : friend function « Class « C++ Tutorial






#include <iostream> 
using namespace std; 
 
class MyClass { 
  int a, b; 
public: 
  MyClass(int i, int j) { a=i; b=j; } 
  friend int friendFunction(MyClass x); // a friend function 
}; 
 
// friendFunction() is a not a member function of any class. 
int friendFunction(MyClass x) 
{ 
  /* Because friendFunction() is a friend of MyClass, it can 
     directly access a and b. */ 
  int max = x.a < x.b ? x.a : x.b; 
 
  return max; 
} 
 
int main() 
{ 
  MyClass n(18, 111); 
 
  cout << "friendFunction(n) is " << friendFunction(n) << "\n"; 
 
  return 0; 
}
friendFunction(n) is 18








9.22.friend function
9.22.1.A friend function
9.22.2.Friend functions can be shared by two or more classes
9.22.3.A function can be a member of one class and a friend of another
9.22.4.Share friend function between classes
9.22.5.friend square() function for Distance
9.22.6.Friend functions and operator overloading
9.22.7.Friend functions can access private members of a class