(メンバ関数との違いについての説明で)
『フレンド関数になれるのは、クラス外で定義される通常の非メンバ関数か、別のクラスのメンバ関数です。』(※)
クラスの中で定義されることもあると思うんですが、
これってどういうことでしょう?
※明解C++(柴田望洋/著)にそう書かれていました。
class foo {
private:
int n;
friend void print(const foo& f) { cout << f.n; } // [*]
};
こんなやつのことかしら?
関数 print はクラスの中で定義されてはいますけど、
クラスのメンバではありません。だから意味的には"外"です。
↓これをinline定義したのだから。
class foo {
private:
int n;
friend void print(const foo& f);
};
void print(const foo& f) { cout << f.n; }
ありがとうございます。
そういうことですか。分かりました。
ツイート | ![]() |