C/C++ 中问题小结

1.  __cxa_pure_virtual

最近开发代码出现coredump,提示__cxa_pure_virtual 调用。

从字面意思就可以知道使用了纯虚函数,而实际上有纯虚函数的类是抽象类,是不能实例,更不能调用纯虚函数。

出现原因:

  • 线程切换的时候, 一个清空了虚函数表,另外一个线程却正要用
  • 构造函数调用虚函数也会出这个问题
  • 垂悬指针也会出现这个现象,父类指针指向子类实例,子类被释放后,用父类指针调用

解决办法:

  • 实现该纯虚函数的派生类调用是否是在多线程中?
  • 派生类被释放后,线程是否结束?是否还是通过基类的指针在调用该纯虚函数?

 

 

待续。。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部