c_cpp 使用unique_ptr,智能指针

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 使用unique_ptr,智能指针相关的知识,希望对你有一定的参考价值。

void use_raw_pointer() {
  Song *pSong = new Song("My heart will go on");
  
  // use pSong ...
  
  delete pSong;
}

void use_smart_pointer() {
  unique_ptr<Song> song1(new Song("My heart will go on"));
  
  // use song1 ...
} // song1 is deleted automatically here


// The following demo shows how to create unique_ptr instances and use them in a vector
void SongVector() {
  vector<unique_ptr<Song>> songs;
  // create some new unique_ptr<Song> instances, add them into vector
  songs.push_back(make_unique<Song>("song title 1"));
  songs.push_back(make_unique<Song>("song title 2"));
  
  // pass by const reference when possible to avoid copying
  for(const auto& song : songs)
    cout << song->title << endl;
}











以上是关于c_cpp 使用unique_ptr,智能指针的主要内容,如果未能解决你的问题,请参考以下文章

C++11 unique_ptr智能指针详解

智能指针之unique_ptr

智能指针unique_ptr用法

智能指针unique_ptr记录

智能指针用法

智能指针:unique_ptr使用简介