要按第二种方式释放,或者用m_record=NULL;代替m_record.Release(); 也行.
因为智能指针实际是一个指针类,所以:
m_record.Release(); // 释放内部的接口指针,同时内部指针赋值为 NULL
m_record->Release();// 错!!!一定不要这么使用,因为这个调用并不把内部指针清空,那么析构的时候会被再次释放(释放了两次)
智能指针释放
最新推荐文章于 2024-05-15 03:20:38 发布
要按第二种方式释放,或者用m_record=NULL;代替m_record.Release(); 也行.
因为智能指针实际是一个指针类,所以:
m_record.Release(); // 释放内部的接口指针,同时内部指针赋值为 NULL
m_record->Release();// 错!!!一定不要这么使用,因为这个调用并不把内部指针清空,那么析构的时候会被再次释放(释放了两次)