Sdílet prostřednictvím


Friend – funkce

Funkce friend je funkce, která není členem třídy, ale má přístup k soukromým a chráněným členům třídy.Spřátelené funkce nejsou považovány za členy třídy. Jsou to normální externí funkce, kterým jsou přiřazena zvláštní přístupová oprávnění.Spřátelené funkce nejsou v rozsahu třídy a nejsou volány pomocí operátorů výběru členů (. a ->), pokud nejsou členy jiné třídy.Funkce friend je deklarována pomocí třídy, která uděluje přístup.Deklarace friend může být umístěna kdekoli v deklaraci třídy.Není ovlivněna klíčovými slovy řízení přístupu.

Následující příklad ukazuje třídu Point a spřátelenou funkci ChangePrivate.Funkce friend má přístup ke členům soukromých dat objektu Point, který přijímá jako parametr.

Příklad

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

Viz také

Referenční dokumentace

friend (C++)