友元 friend

 Wed, 14-Jun-2023 18:22:46

friend function

#include <stdio.h>
class A {
public:
     A() {}
     friend void xx(A &a);
private:
    int a;

}

void xx(A &a)
{
      printf("a :%d\n", a.a);
}

int main()
{
     A a;
     xx(a);
      return 0;
}

friend member function

 

#include <stdio.h>

class B;
class A {
public:
     A() {}
     friend void B::xx(A &a);
private:
    int a;

}

class B {
public:
     A() {}
     void xx(A &a)
    {
         printf("a :%d\n", a.a);
   }

private:
    int a;

}

friend class

 

#include <stdio.h>

class B;
class A {
public:
     A() {}
     friend class B;
private:
    int a;

}

class B {
public:
     A() {}
     void xx(A &a)
    {
         printf("a :%d\n", a.a);
   }

private:
    int a;

}