面试题:C++ 多重继承下构造函数与析构函数调用顺序及内存布局
考虑以下 C++ 多重继承的代码:
```cpp
class A {
public:
A() { std::cout << "A constructor" << std::endl; }
~A() { std::cout << "A destructor" << std::endl; }
};
class B {
public:
B() { std::cout << "B constructor" << std::endl; }
~B() { std::cout << "B destructor" << std::endl; }
};
class C : public A, public B {
public:
C() { std::cout << "C constructor" << std::endl; }
~C() { std::cout << "C destructor" << std::endl; }
};
```
1. 写出 `C c;` 这条语句执行时构造函数和析构函数的调用顺序,并说明理由。
2. 简单描述 `C` 类对象在内存中的布局情况。