我听说空的析构函数不做任何事情并且调用它不会删除对象。但在代码中:
#include <iostream>
#include <set>
class a
{
public:
~a()
{}
std::set <int> myset;
};
int main()
{
a object;
object.myset.insert(55);
object.~a();
object.myset.insert(20);
std::cout << object.myset.size();
}
我得到:“ * glibc detected * /.app: double free or corruption (fasttop):” 然后是“ABORT”。
如果重要的话,我启用了 c++11 标志。那么空构造函数实际上是做什么的呢?它做了一些事情,而我读到它没有。