デフォルト引数は宣言か実体のどちらかに書く

両方書いたらエラーになった。
宣言に書いておいたほうが無難かなぁ…

#include <iostream>

using namespace std;

class Foo {
private:
  int i;

public:
  void set_i(int i = 100);
  int get_i();
};

void Foo::set_i(int i /*= 100*/) {
  this->i = i;
}

int Foo::get_i() {
  return i;
}

int main() {
  Foo foo;

  foo.set_i(100);
  cout << foo.get_i() << "\n";

  return 0;
}