フレンド関数を使う

便利さがまだよくわからない。

#include <iostream>

using namespace std;

class Foo {
private:
  int i;

public:
  Foo(int i) : i(i) {};
  friend void puts(Foo foo);
};

void puts(Foo foo) {
  cout << foo.i << endl;
}

int main() {
  Foo foo(100);
  puts(foo);
  return 0;
}