假设我们将A
声明为Type
类型:
Type A;
问题:是此时调用的Type
的{{1}}构造函数?或者只是在我们初始化A
后才调用构造函数?
答案 0 :(得分:1)
是此时调用的A的Type构造函数?或者只是在我们初始化A之后才调用构造函数?
您 在此初始化A
,无论您是否明确为该流程提供了值。
没有机会初始化A
"稍后&#34 ;;你以后只能分配它。 (早期的C文本谈论"初始化"数字值在声明之后很久,但这是一种不同的语言,一个不同的世纪,以及一组不同的描述性习语。)
所以,是的,一旦对象的生命周期开始,就会调用构造函数。那就是那个,那么,在那一行,或者当一个类成员当然是在封装类被初始化时它是这个成员的转向。 / p>
当然,您可以使用简单的std::cout
对证明这一点。
答案 1 :(得分:0)
是的,立即调用它。为其赋值时,将调用赋值运算符。
唯一的例外是:
Type a = value;
这里一些带有某些设置的编译器可以放松它并直接使用value作为参数调用构造函数。但它仍然需要成为声明的一部分。