class A {
public:
int n;
A(int n=0) : n(n) { }
};

class B : public A {
public:
B() { A(1)); }
};

class C : public B {
public:
C(int m) { if(m==1) B(); } //引数が1ならBを呼び出す
};

main()
{
C c;
cout << c.n << endl; // 1にしたいのに0になる
}

お願いします