C++ Friend

Da Andreabont's Wiki.

Il modificatore friend permette di alterare i permessi di accesso alle variabili interne di una classe. Una funzione o una classe dichiarata come "amica" di un'altra classe può accedere al suo stato interno.

Funzione friend

#include <iostream>

class foo {

private:
   int a;

public:

   foo(int i) {
      this->a = i;
   }

   friend void bar(foo myfoo);

};

void bar(foo myfoo) {
   std::cout << "foo.a = " << myfoo.a << std::endl;
}

int main() {
   foo myfoo(9);
   bar(myfoo);
}

Classe friend

#include <iostream>

class foo {

private:
   int a;

public:

   foo(int i) {
      this->a = i;
   }

   friend class bar;

};

class bar {

public:

   bar(foo myfoo) {
      std::cout << "foo.a = " << myfoo.a << std::endl;
   }

};

int main() {
   foo myfoo(9);
   bar mybar(myfoo);
}