フレンド関数になれるのは....について

解決


くろのすけ  2006-11-18 16:21:43  No: 63633

(メンバ関数との違いについての説明で)
『フレンド関数になれるのは、クラス外で定義される通常の非メンバ関数か、別のクラスのメンバ関数です。』(※)
クラスの中で定義されることもあると思うんですが、
これってどういうことでしょう?

※明解C++(柴田望洋/著)にそう書かれていました。


επιστημη  2006-11-18 16:55:24  No: 63634

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; }


くろのすけ  2006-11-20 02:25:47  No: 63635

ありがとうございます。
そういうことですか。分かりました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加