class A : public B
{
...
}
// case I : explicitly call the base class default constructor
A::A() : B()
{
...
}
// case II : don't call the base class default constructor
A::A() // : B()
{
...
}
Случай II равен случаю I?
Для меня я предполагаю, что конструктор по умолчанию базового класса B НЕ вызывается в случае II. Однако, несмотря на то, что я придерживаюсь этого предположения, я провел тест, который доказывает обратное:
class B
{
public:
B()
{
cout << "B constructor" << endl;
}
};
class A : public B
{
public:
A()
{
cout << "A constructor" << endl;
}
};
int _tmain(int argc, _TCHAR* argv[])
{
A a;
return 0;
}
//вывод из VS2008
B constructor
A constructor
Press any key to continue . . .