问题提出
在定义某个对象时,我们其实是可以手动调用该对象的析构函数的。那么如果我们真的手动调用了析构函数,会发生什么呢?
首先看一个例子
#include <iostream>
class Value {
public:
explicit Value(int val = 0)
: m_value(val) {
}
int value() const {
return m_value;
}
~Value() {
}
private:
int m_value;
};
int main(int, char**) {
Value n(100);
std::cout << n.value() << std::endl;
n.~Value