Compartir a través de


Funciones friend

Una función de friend es una función que no es miembro de una clase pero tiene acceso a los miembros privados y protegidos de la clase.Las funciones friend no se consideran miembros de clase; son funciones externas normales que tienen privilegios de acceso especiales.Friends no están en el ámbito de la clase, y los no denominan utilizando los operadores miembro-selección (. y –>) a menos que sean miembros de otra clase.Una función de friend es declarada por la clase que se concede el acceso.La declaración de friend se puede colocar en cualquier parte de la declaración de clase.No se ve afectada por las palabras clave de control de acceso.

El ejemplo siguiente se muestra una clase y una función friend, ChangePrivatede Point .La función de friend tiene acceso al miembro de datos privado del objeto de Point que recibe como parámetro.

Ejemplo

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

Vea también

Referencia

confianza (C++)