Do privatnih metod ali podatkov razreda lahko dostopajo samo prijateteljske funkcije razreda (friend funkcije), čeprav niso člani razreda.
Primer:
class Stevec {
friend void doloci_x(Stevec &, int);
// opredelitev friend funkcije
public:
Stevec() { x = 0; } // konstruktor
void izpisi() const { cout << x << endl; }
// izhod
private:
int x; // podatkovni element razreda
};
void doloci_x(Stevec &c, int vred)
{
c.x = vred; // dovoljeno: doloci_x je friend
// funkcija Stevca
}
Primer – glavna funkcija
main()
{
Stevec objekt;
cout << "objekt.x po uvedbi: ";
objekt.izpisi();
cout << "objekt.x po klicu friend funkcije doloci_x: ";
doloci_x(objekt, 8); // dolocitev x s friend funkcijo
objekt.izpisi();
return 0;
}
Program izpiše:
objekt.x po uvedbi: 0
objekt.x po klicu friend funkcije doloci_x: 8