析构函数有2种方式调用,一个是主动调用delete,另一个是根据RAII的规则,在对象的生命周期结束时自动析构.第一点没什么好说的,就简单讲下第二点. 对象的生命周期不等于是程序的生命周期,一般我们所谓的生命周期就是一个作用域,当变量或者对象离开这个作用域时就会自动析构.一般一对{}就是一个作用域,举个例子 int main() { ; i<; i++) { A a; } a//错误,脱离作用域 } 一般在函数里的对象,离开函数时才算离开作用域,即return发生时,才执行析构,所以main中定…