Я проверил это, так как думал, что это может работать (даже без ответа Прасуна)
B::B() : A(), d(0)
{
}
может работать, потому что вы тогда "инициализируете" A.
Это не так,Кстати.Вывод: 1,32,123595988
Это будет работать, хотя:
// put this in B.cpp anonymous namespace
const A a_init = { 0, 0 ,0 };
с последующим:
B::B() : A( a_init), d(0)
{
}
Я тестирую с использованием g ++ 4.3.2.Сейчас ЭТО работает:
B::B() : A(A()), d(0)
{
}