我知道如果我们不声明它,编译器会生成一个默认构造函数。
而“何时”是我感到困惑的地方。
A:
class Base {};
int main()
{
return 0;
}
乙:
class Base {};
int main()
{
Base b; // Declare a Base object.
return 0;
}
A 和 B 的区别仅在于 B 声明了 Base 的真实对象。在我看来,只有当我们声明一个真实对象并且编译器没有找到构造函数时,它才会生成一个默认构造函数。
我的问题是:
代码片段A会生成Base的默认构造函数吗?
有什么工具可以帮助检查结果吗?我使用 Visual Studio 2010,/d1 reportAllClassLayout 似乎没用。