考虑以下示例代码:
#include <iostream>
using namespace std;
class base
{
public:
base()
{
cout << "ctor in base class\n";
}
};
class derived1 : public base
{
public:
derived1()
{
cout <<"ctor in derived class\n";
}
};
int main()
{
derived1 d1obj;
return 0;
}
问题
当创建时,构造函数的调用顺序是:首先调用基类构造函数,然后调用派生类构造函数。这样做的原因是:
为了构建派生类对象,需要先构造基类对象
?包含一个基类对象吗?
我再加一个问题
3) 当创建时,控制首先到达基类构造函数,然后再进入派生类构造函数吗?还是反过来:首先到达派生类构造函数,发现它有基类,然后控制流转到基类构造函数中?