Compartir a través de


Funciones friend

Una función 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. No están en el ámbito de la clase y no se las llama usando los operadores de selección de miembro (. y –>) a menos que sean miembros de otra clase. Una función friend la declara la clase que concede el acceso. La declaración friend se puede colocar en cualquier lugar de la declaración de clase. No se ve afectada por las palabras clave de control de acceso.

En el ejemplo siguiente se muestra una clase ChangePrivate y una función friend, Point. La función friend tiene acceso al miembro de datos privado del objeto 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

friend (C++)