你说的完全不是那么回事。首先,数组是不需要你去销毁的。而且你的析构函数也没有销毁这个操作,你只是做了一个cout输出的操作。只有你在类中分配了内存,比如new,才需要销毁,用delete。析构函数是在对象离开作用域的时候,由编译器自动调用,来释放你分配的内存的。你那个类压根就没有分配内存,实际上也不需要析构函数。你如果不写析构函数,编译器就默认提供一个,但是它不会执行任何操作。具体到你这个程序。你首先new了一个类对象。然后你获取了对象的数组成员的首地址。再然后你释放了这个对象10次。。这是什么操作?你的成员数组是这个对象里面的东西,你delete了对象,它的成员自然也释放了,它是在堆内存的,由系统自己回收,不用你管。你之所以发现前几个数据变了,是因为这块内存被别的东西用了。跟析构函数没有半毛钱关系。通俗来说,只有类中有指针成员,并且你给指针new了内存,才需要你自己写析构函数来释放。