Condividi tramite


Funzioni di tipo friend

Una funzione friend è una funzione che non è un membro di una classe ma ha accesso ai membri privati e protetti della classe. Le funzioni friend non sono considerate membri della classe; sono funzioni esterne normali a cui vengono concessi privilegi di accesso speciali. Gli elementi friend non sono nell'ambito della classe e non vengono chiamati utilizzando gli operatori di selezione dei membri (. e >) a meno che non siano membri di un'altra classe. Una funzione friend viene dichiarata dalla classe che le sta concedendo accesso. La dichiarazione friend può essere inserita in un punto qualsiasi della dichiarazione di classe. Non è influenzata dalle parole chiave di controllo di accesso.

Nell'esempio seguente viene illustrata una classe Point e una funzione friend ChangePrivate. La funzione friend ha accesso al membro dati privato dell'oggetto Point ricevuto come parametro.

Esempio

// 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();
}
  

Vedere anche

Riferimenti

friend (C++)