C++11 n3242“子对象的持续时间,对象生命周期”,3.8/1 中的一点:
对象的生命周期是对象的运行时属性。如果一个对象是一个类或聚合类型,并且它或它的一个成员由一个普通默认构造函数以外的构造函数初始化,则称该对象具有非普通初始化[注意:普通复制/移动构造函数的初始化是非普通的- 简单的初始化。——尾注]
T 类型对象的生命周期开始于:
- 获得具有适合类型 T 的对齐和大小的存储,并且
- 如果对象有非平凡的初始化,它的初始化就完成了。
T 类型对象的生命周期在以下情况下结束:
- 如果 T 是具有非平凡析构函数(12.4)的类类型,则析构函数调用开始,或者
- 对象占用的存储空间被重用或释放。
在这里,他们谈到了具有对象生命周期的琐碎或非琐碎的复制/移动构造函数。任何人都可以用一些示例程序来解释这一点吗?
点的变化描述了类型对象的生命周期何时T
开始,但没有提及何时T
结束。为什么?