代码:
class test {
public:
int _num;
test() {
_num = 100; // 构造的时候初始化_num为100
std::cout << "construction" << std::endl;
}
~test() {
std::cout << "destruct" << std::endl;
}
};
int main() {
test *t = new test();
std::cout << "address = " << t << std::endl; // 假设打印的地址为 0x010a4130
std::cout << t->_num << std::endl; // 打印_num的值为100
t->_num = 101; // 修改_num的值
std::cout << t->_num << std::endl; // 打印_num的值为101
new (t) test(); // 打印 construction
std::cout << "address = " << t << std::endl; // 打印的地址为 0x010a4130
std::cout << t->_num << std::endl; // 打印_num的值为100
t->_num = 102; // 修改_num的值
std::cout << t->_num << std::endl; // 打印_num的值为102
new (t) test(); // 打印 construction
std::cout << "address = " << t << std::endl; // 打印的地址为 0x010a4130
std::cout << t->_num << std::endl; // 打印_num的值为100
delete t; // delete 1次
t = null;
}