C/C++ 中问题小结
1. __cxa_pure_virtual
最近开发代码出现coredump,提示__cxa_pure_virtual 调用。
从字面意思就可以知道使用了纯虚函数,而实际上有纯虚函数的类是抽象类,是不能实例,更不能调用纯虚函数。
出现原因:
- 线程切换的时候, 一个清空了虚函数表,另外一个线程却正要用
- 构造函数调用虚函数也会出这个问题
- 垂悬指针也会出现这个现象,父类指针指向子类实例,子类被释放后,用父类指针调用
解决办法:
- 实现该纯虚函数的派生类调用是否是在多线程中?
- 派生类被释放后,线程是否结束?是否还是通过基类的指针在调用该纯虚函数?
待续。。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
