【发布时间】:2011-04-25 15:42:07
【问题描述】:
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 中不会调用基类 B 的默认构造函数。然而,尽管仍然持有这个假设,但我已经运行了一个测试,证明并非如此:
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 . . .
【问题讨论】:
标签: c++ inheritance constructor