Friend functions can access private members of a class : friend function « Class « C++ Tutorial






#include <iostream>
using std::cout;
using std::endl;

class MyClass 
{
   friend void setX( MyClass &, int ); // friend declaration
public:
   MyClass() : x( 0 )
   { 
   }
   void print() const       
   { 
      cout << x << endl; 
   }
private:
   int x;
};
void setX( MyClass &c, int val )
{
   c.x = val;
} 

int main()
{
   MyClass counter;
   counter.print();

   setX( counter, 8 );
   counter.print();
   return 0;
}
0
8








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