题目
创建一个具有内联默认构造函数的类a,该构造函数声明自身。现在创建一个新的类B,将a的一个对象作为B的成员,并给B一个内联构造函数。创建一个B对象数组,看看会发生什么。
代码
#include <iostream>
using namespace std;
class A
{
public:
inline A (){cout << "A is created." << endl;}
private:
int a;
};
class B
{
public:
inline B (){cout << "B is created." << endl;}
private:
A aa;
};
int main()
{
B arr[3];
return 0;
}
结果
构造B数组每个元素的时候,都会对应地构造一个A类对象,故会先调用A的内联构造函数,之后调用B的内联构造函数。
数组有多少个元素,就调用几次A与B的构造函数。