Udostępnij za pośrednictwem


friend — funkcje

Funkcja friend jest funkcją, która nie jest członkiem klasy, ale ma dostęp do prywatnych i chronionych członków.Funkcje zaprzyjaźnione nie są uważane za członków klasy; są one normalnymi zewnętrznymi funkcjami, które posiadają uprawnienia specjalnego dostępu.Funkcje zaprzyjaźnione nie wchodzą w zakres tej klasy, a nie są wywoływane przy użyciu operatorów wyboru elementów członkowskich (. i –>) o ile nie są członkami innej klasy.Funkcja friend jest zadeklarowana w klasie, która udziela dostępu.Deklaracja friend można być umieszczona gdziekolwiek w deklaracji klasy.Nie dotyczy to słowa kluczowego kontroli dostępu.

W poniższym przykładzie pokazano klasę Point i funkcję zaprzyjaźnioną ChangePrivate.Funkcja friend ma dostęp do prywatnych danych członkowskich obiektu Point, który otrzymuje jako parametr.

Przykład

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

Zobacz też

Informacje

friend (C++)