比如 class t1 {int T1;}; class t2 :public t1 {int T2;}; signed main() {     A *a = new B();     delete a;     return 0; } 这样的一份代码。 很明显会造成内存泄漏。 分析报错。 new-delete-type-mismatch 分配了8字节,结果只删除了4字节,明显的内存泄漏。 于是虚析构函数横空出世。 有了虚析构函数后,delete操作会正确识别类的真正类型,从而不会删除错误。
点赞 评论

相关推荐

牛客网
牛客企业服务