In CeePlusPlus, a friend function is a function that a class declares its "friend":
class Foo {
private:
int heyThatsMine;
friend void foosFriend(Foo&);
};
Functions are permitted to access private members of their friends, which, normally, only members of the same class are allowed to do.
void foosFriend(Foo& foo) {
foo.heyThatsMine = 0; // OK
}
void notFoosFriend(Foo& foo) {
foo.heyThatsMine = 0; // ERROR: Foo::heyThatsMine is private
}
Friend function declarations are often used to grant access to private members to OverloadedOperators.
When I first saw this page I misread its title as "FriedFunction"...