请看下面的代码:
考虑以下代码:
#include <iostream>
typedef int t;
t a=42;
int main()
{
a.t::~t();
std::cout << a; //42
}
我原本以为a
会被销毁。但事实并非如此,为什么?这个伪析构函数调用是如何销毁对象的?
a
仍然表示值为42
的int
是代码的一种可能解释(如果代码确实导致a
的生命周期结束)。 - Mankarse