当前位置:  开发笔记 > 编程语言 > 正文

从ASAN获取新的删除类型不匹配

如何解决《从ASAN获取新的删除类型不匹配》经验,为你挑选了1个好方法。



1> mrks..:

C++反复给你一种感觉,你甚至不理解基本概念.在这种情况下:继承.

通过向ctors和dtors添加print语句,你会发现对于两个指针(旧式和智能指针)只有~A,而不是~B被调用.这是因为A的dtor不是虚拟的.

Scott Meyers说:" 多态基类应该声明虚拟析构函数.如果一个类有任何虚函数,它应该有一个虚拟析构函数"

通过添加修复此问题

struct A {
  virtual ~A() = default;
};


我所做的:声明我作为`final`创建的每个类,如果我想从那里派生,我需要转到类定义并删除`final`.然后我会(希望:P)记得将析构函数标记为虚拟.
推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有