在3.8.1节的n3690 C ++标准中,有以下文本:

The lifetime of an object of type T begins when:
— storage with the proper alignment and size for type T is obtained, and
— if the object has non-trivial initialization, its initialization is complete.


假设有一个用户定义的构造函数。

最后一句话是什么意思?是在初始化程序列表完成初始化之后还是在构造函数主体完成运行之后?还是最后一句话意味着其他意思?

最佳答案

12.6.2 [class.base.init],第6项,列出了初始化步骤,这是最后一步:


  最后,执行构造函数主体的复合语句。


因此,一旦主体执行完毕,初始化就完成了。

关于c++ - 关于对象生存期的开始,C++标准意味着什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20409500/

10-11 15:51