use*_*046 -3 c++ destructor c++11
我有以下代码片段:
#include<iostream>
using namespace std;
class Test {
public:
Test() { cout << "Constructor is executed\n"; }
~Test() { cout << "Destructor is executed\n";}
void show() { this->Test::~Test(); }
};
int main() {
Test t;
t.show();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这是输出:
Constructor is executed
Destructor is executed
Destructor is executed
Run Code Online (Sandbox Code Playgroud)
问题:如果t.show()
已经在"this"对象(即当前对象)上调用析构函数,导致"析构函数被执行"显示一次,那么是什么原因导致它第二次显示?在这种情况下哪个对象被破坏了?