只要可能是基类，析构函数就应该定义为虚函数