初期化子ってコンストラクタの呼び出しなのかな?
#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()