为什么派生类对象的析构函数要在基类对象的析构函数之前调用?

同样为什么成员对象的析构函数要在封闭类对象的析构函数之前调用?有什么道理吗?

析构函数就是销毁一下数据,父类先销毁了,那子类后销毁,子类销毁之前可能会调用父类一些数据,但是父类已经销毁了,调用失败,就会出错,从而子类销毁失败,占用内存。