初期化子

初期化子ってコンストラクタの呼び出しなのかな?

#include <iostream>
using namespace std;

#define DEBUG(s) do { cerr << (s) << endl; } while(false);

class Bar {
public:
  Bar();
  Bar(int i);
  Bar(int i, int j);
};

Bar::Bar() {
  DEBUG("Bar::Bar()");
}

Bar::Bar(int i) {
  DEBUG("Bar::Bar(int i)");
}

Bar::Bar(int i, int j) {
  DEBUG("Bar::Bar(int i, int j)");
}

class Foo {
private:
  Bar bar1;
  Bar bar2;
  Bar bar3;
public:
  Foo();
};

Foo::Foo() : bar2(1), bar3(2, 3) {
  DEBUG("Foo::Foo()");
}

int main() {
  Foo foo;
}


Bar::Bar()
Bar::Bar(int i)
Bar::Bar(int i, int j)
Foo::Foo()