1.1 问题描述
类的定义如下:
class QOsgWidget {
public:
///< essential widget, use this ptr to be the real widget
osgQOpenGLWidget* pWidget = nullptr;
// QOsgWidget(QWidget* parent = nullptr);
QOsgWidget(const std::string& modelPath, QWidget* parent = nullptr);
~QOsgWidget();
///< osg base vars
osg::ref_ptr<osg::Group> mRoot =

本文讨论了在C++中使用智能指针时,类析构函数中释放资源的重要性。当QOsgWidget类的析构函数不正确地清理成员变量时,会导致内存泄漏或程序崩溃。原因是智能指针osg::ref_ptr在析构pWidget时不自动置空关联的成员,引发引用计数不为0,从而导致错误。解决方案是在析构前手动置空所有关联的智能指针。
最低0.47元/天 解锁文章
1924





