D是错的,应该是在销毁派生类对象时,先调用派生类的析构函数,再调用基类的析构函数.这跟盖房拆房一个道理,盖时肯定要先盖基础(相当于建立时先调用基类),再盖上面(再调用派生类)拆房时,肯定很从上面拆(先调用派生类的析构函数),再拆下面(再调用基类的析构函数)其实上面只有简单的解释,上面的调用是因为,若你先调用基类的析构函数,会把派生类正在用的一次资源销毁,因为此时派生类还没有被销毁,所以肯定会出现问题。