智能指针 shared_ptr

来源:互联网 发布:淘宝旺旺如何设置 编辑:程序博客网 时间:2024/04/30 11:53

#include <memory>

std::vector<std::shared_ptr<SSN_TRANSLATER_INFO>> m_vSaveTranslaterInfo;

 

void CBrailleDisplay::LoadAllTranslater()
{
 HANDLE hGetTranslaterInfo = SsnBeginGetTranslaterInfo();
 
 if(hGetTranslaterInfo != INVALID_HANDLE_VALUE)
 {
  std::shared_ptr<SSN_TRANSLATER_INFO> ptrTranslaterInfo(new SSN_TRANSLATER_INFO);
  while(SSN_OK == SsnGetNextTranslaterInfo(hGetTranslaterInfo,ptrTranslaterInfo.get()))
  {
   if (ptrTranslaterInfo->nDestLocaleId==SSN_LOCALE_ID_BRAILLE)
   {
    m_vSaveTranslaterInfo.push_back(ptrTranslaterInfo);
   }
    ptrTranslaterInfo = std::shared_ptr<SSN_TRANSLATER_INFO>(new SSN_TRANSLATER_INFO);
  } 
  SsnEndGetTranslaterInfo(hGetTranslaterInfo);
 }

}

 

do

{

 

}while(   )

 

把指针封装在一个“智能的”类似指针的对象里,这个对象拥有这个指针并且能在析构时自动删除这个指针指的对象,因为这个智能指针可以简单的当成一个自动的对象(这就是说,它除了作用域后会自动毁灭)所以称之为智能指针;