我不明白这个:
3.8/1"类型T的对象的生命周期在以下情况下结束: - 如果T是具有非平凡析构函数(12.4)的类类型,则析构函数调用开始,或者 - 对象占用的存储器被重用或释放. "
如果生命周期在析构函数启动之前结束,那是不是意味着访问析构函数中的成员是未定义的行为?
我也看到了这句话:
12.7"对于具有非平凡析构函数的对象,在析构函数完成执行后引用该对象的任何非静态成员或基类会导致未定义的行为."
但它并不清楚析构函数中允许的内容.
c++ destructor object-lifetime language-lawyer
c++ ×1
destructor ×1
language-lawyer ×1
object-lifetime ×1