virutal即虚函数,virtual成员函数可以被衍生类override。析构函数可以被override。析构函数的实现自动并且强制调用其基类的实现。
virtual的含义是“调用时根据对象决定其实际执行的代码”,与是不是析构函数无关。
因此如果子类赋值给基类,删除基类指针,析构函数不是虚函数,会导致子类析构函数不被调用,即内存没有释放,只调用了基类析构。
virutal即虚函数,virtual成员函数可以被衍生类override。析构函数可以被override。析构函数的实现自动并且强制调用其基类的实现。
virtual的含义是“调用时根据对象决定其实际执行的代码”,与是不是析构函数无关。
因此如果子类赋值给基类,删除基类指针,析构函数不是虚函数,会导致子类析构函数不被调用,即内存没有释放,只调用了基类析构。