Content deleted Content added
No edit summary Tags: Mobile edit Mobile web edit |
m →Use cases: consistently "method" (already three times in the intro and also category) |
||
(21 intermediate revisions by 17 users not shown) | |||
Line 1:
In [[object-oriented programming]], a '''friend function''', that is a "
</ref>
Line 9 ⟶ 8:
==Use cases==
This approach may be used in friendly function when a function needs to access private data in objects from two different classes.
This may be accomplished in two similar ways:
*
*
<
// C++ implementation of friend functions.
#include <iostream>
using namespace std;
class Foo; // Forward declaration of class Foo in order for example to compile.
class Bar {
private:
int a = 0;
public:
void show(Bar& x, Foo& y);
friend void show(Bar& x, Foo& y); // declaration of global function as friend
};
class Foo {
private:
int b = 6;
public:
friend void
friend void Bar::show(Bar& x, Foo& y); // declaration of
▲ friend void Bar::show(Bar& x, Foo& y); // declaration of friend from other class
};
// Definition of a
void Bar::show(Bar& x, Foo& y) {
cout << "Show via function member of Bar" << endl;
Line 56 ⟶ 55:
a.show(a,b);
}
</syntaxhighlight>
==References==
Line 64 ⟶ 63:
==External links==
*[http://www.codersource.net/c/ctutorials/ctutorialfriend.aspx C++ friend function tutorial] at CoderSource.net
[[Category:Method (computer programming)]]
|